Massive update to make more functional/modular

Use fcalc.fret_counts() in test_fcalc
Improving fplot

ADD db.api.with_() for pymongo.find field selection

fplot renaming/improvements

Removing shell.all alias of fplot.stockall

Fix fplot.segmented; extract subplots()/sharex() funcs

Rename fplot.sharex()=>fplot.twinxaxis()

Add db.api.greaterthan() to __all__

ENH fplot.frets() plots fret for iterable of experiments
db.api opens arbitrary host/port

nesteddict.update() preserves nesting

import shell skips pymongo if import fails

db.api.connect() and close() to @database

db.api.connect() to arbitrary host and port

Remove cruft comments/classes from db.api

fancydict.nesteddict can create needed nesting using . in setitem
Refactoring image.ROI and image.Stack

Clean up image.Stack.__init__ and image.fromFile()/image.fromBackground()
Changing object instantiation to use 'meta' argument instead of '**meta' kwargs
Cleaning datatypes.AbstractData => Data using metaclass

ENH datatypes.DataType metaclass for attr access to data columns
ENH numlist.getattrs(),getitems(),flatten(); looks up attributes in elements automatically
Add TrapData/FretData to shell import *
ENH datatypes.Data.at() condensed using .where()
ENH update Data.aggregate args; flatten=aggregate
ADD test_datatypes

ENH cleaning experiment.py; using ExpList.getattrs() in collapse()