Add ParameterizedProperty and allow validation in Either
Add support for validation in Tuple
Remove unneeded 'self' from Enum.__init__()
Use Either(Enum ...) (instead of String) in Axis.location
Refine Axis.location's type to Enum(Location)
Add support for validation in Dict
Refine Axis.major_label_orientation to Either(..., Float)
Make DashPattern an Either(Enum(DashPattern), List(Int))
Remove unneeded definitions from bokeh/properties.py
Add Regex and Range properties
Implement Color property in terms of Enum, Regex, Range and Tuple
Restore "1 2 3" syntax in DashPattern using Regex
Make Tuple and Either raise TypeError consistently with other classes
Fix bokeh/tests/test_properties.py
Make bokeh/tests/test_properties.py easier to read
Simplify Enum's constructor, use enums.enumeration()
Make sure that enumeration items are unique
Don't allow empty tuple to Tuple(T1, ..., Tn)
Add preliminary systematic tests of properties
Add "max" to Location enumeration