Summingbird Storm/Online refactor

based ontop of #539, so when we merge that I can rebase/merge to make the diff a little cleaner. This is much bigger though so didn't want to get stuck with merge conflicts.

This however does not effect behavior of jobs(though it is source code incompatible at this time) at all. Its mostly moving things out of storm into online where possible. 

Attempts to put some nicer types around our Store Provider and Service Provider needs in online is probably the most useful cleanup to it. Adds a bunch of comments too where needed. 
it would be useful to have a comment on the less obvious default values here, for example DEFAULT_SOFT_MEMORY_FLUSH_PERCENT, DEFAULT_SUMMER_BATCH_MULTIPLIER. Also, a description of what all the caches and their parameters are (DEFAULT_VALUE_COMBINER_CACHE_SIZE, DEFAULT_FM_CACHE, DEFAULT_SUMMER_CACHE, DEFAULT_USE_ASYNC_CACHE) ? Or point to where that is described.