title: Why do some bokeh palettes raise a ValueError when used in factor_cmap()
body: <p>With the same data, some palettes raise an error and some just work. </p>
  
  <pre><code>from bokeh.io import show, output_file
  from bokeh.models import ColumnDataSource
  from bokeh.plotting import figure
  from bokeh.transform import factor_cmap
  from bokeh.palettes import Spectral6, Dark2
  
  output_file("colormapped_dots.html")
  
  cats = ['A', 'A', 'B', 'B', 'C', 'C']
  x = [5, 3, 4, 2, 4, 6]
  y = x
  factors = list(set(cats))
  source = ColumnDataSource(data=dict(cats=cats, x=x, y=y))
  </code></pre>
  
  <p>This one works, </p>
  
  <pre><code>p = figure()
  p.circle('x', 'y', size=10,
           color=factor_cmap('cats', palette=Spectral6, factors=factors), 
           source=source)
  show(p)
  </code></pre>
  
  <p>This one returns an error,</p>
  
  <pre><code>p = figure()
  p.circle('x', 'y', size=10,
           color=factor_cmap('cats', palette=Dark2, factors=factors), 
           source=source)
  show(p)
  
  
  ValueError: expected an element of Seq(Color), got {3: ['#1b9e77', '#d95f02', '#7570b3'], 4: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a'], 5: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e'], 6: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e', '#e6ab02'], 7: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e', '#e6ab02', '#a6761d'], 8: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e', '#e6ab02', '#a6761d', '#666666']}
  </code></pre>
  
  <p>What's the difference between these palettes and how do we get 'Dark2' to work?</p>