Scans API for ophyd

Hi,

Here is the first cut again for scans using the class concept. This is tested with the xf23id1 config. 

Generic N x M scans are possible. 

Needs work on type checking and exception handling. 

Comments?
S
switching to using `product` will be a major readability improvement