Allow to specify alternative types for properties

This effectively replaces broken `OrElse`.
I use it all the time (well, maybe not in bokeh before).