Refactor functions into DataFrames

This PR is the implementation of the idea suggested in https://github.com/OpenSourcePolicyCenter/Tax-Calculator/issues/39. In order to support reusability and better testing, each function returns a DataFrame instead of writing output to a CSV. In the `Test` function, we wrap each call to a function with `to_csv` which takes the resulting DataFrame and writes it to CSV. 

Running `Test(True)` creates an identical set of CSVs as before, with two exceptions:

* the header of each CSV uses the pandas style, which is good if we want to read the CSV back in as a DataFrame

* The FilingStatus CSV file in the new version won't write the integer `1` as `1.00` which `np.savetxt` does.