Callback fix (etc.)

Take a look, Daron - I'm sure some changes will be necessary.

* Adds an `OphydObject` (I'm up for better suggestions on the naming).
* Fixes callbacks (issue #21) at the lowest level possible
* Also tweaks the attribute/property names for plugins in `AreaDetector`s. Note how in the new example you do: `det.tiff1.full_file_name`, `det.image1.image`, etc. It's cleaner and works better with IPython introspection. 
* `AreaDetector` names are generated from the pv prefix/suffix or user-specified names. For example, with only specifying the name of `simdet`:

> In [1]: simdet.image1.array_data.name
> Out[1]: 'simdet.image1.arraydata'
> 
> In [2]: simdet.image1.name
> Out[2]: 'simdet.image1'

* Need to resolve the MongoDB naming issue