Merge pull request #128 from synthicity/sim-exec

Evaluate variables and models a la carte
Cache items with their cache scope, remove table_source

In anticipation of fully implementing cache scope controls this
removes the table_source decorator and makes a namedtuple
container object for cached items so that items can be cached along
with the information about their cache scope.
fix another usage of table_source
Add automatic cache clearing based on scope

Table, column, and injectable decorators now take a cache_scope
argument that can be 'step', 'iter', or 'forever'.
Thing with a scope of 'step' are cleared after each model,
things with a scope of 'iter' are cleared at the end of each model year,
and things with scope 'forever' are never automatically cleared.
Always convert table functions to wrapped DataFrames

It occurred to me that one of the benefits of table_source was that
it converted the registered thing to a DataFrameWrapper that allows
you to access the underlying DataFrame.

To keep the same benefit now that table_source is gone I've converted
the simulation framework so that the injection and get_table always
result in a wrapped DataFrame. This could result in a little more computation
while evaluating dependencies, but caching still works the same
so things that are cached will only be built once
(or until they are removed from the cache).
Change ._frame attribute to .local

There are situations when you need to directly access the DataFrame
underlying a DataFrameWrapper, especially when trying to shadow that
column with a computed column. Instead of forcing people to use
the semi-private ._frame now it's .local.
Add caching section to simulation docs

[ci-skip]