First pass at refactoring

@talumbau I know you said we should stave off the issue of global variables, but to be honest, I'm having a little trouble refactoring without a clear concept of variable sharing. On the one hand, numba very heavily favors writing a bunch of small functions each of which focuses on calculating (and returning) just one variable. On the other hand, we want every function to return a DataFrame because this seems to be the common currency we're operating with.

I think the most reasonable way to address this at this point is to have all the functions in ``taxcalc.calculate`` only return vectors, then modify ``test.run`` so that it a) selects the right variables as inputs to functions from ``taxcalc.calculate`` and b) converts all their outputs to DataFrames and incorporates them into the global namespace so that these outputs are accessible to any later computations, should they be required. It this way ``test.run`` (or an equivalent function) will *stitch together* the results of running a lot of small numba-ized functions.

Thoughts?
@MattHJensen