Add _FakeRegressionResults for wrapping saved model coefficients.

A fit RegressionModel stores a statsmodels RegressionResults subclass
and uses that for prediction. (And users can look at the statistics of
the model fit.) For the purposes of storing models on disk all we can
save is the model expression and the fit coefficients.
_FakeRegressionResults can wrap those to provide a RegressionResults
stand in when loading a fit model from a file.
to_json and from_json methods for RegressionModel

We'll be able to save even a fit model on disk or in a database
as JSON.
Reconfigure JSON tests to do better numeric comparison of stored coefficients.
moving from json to yaml for regression storage
yaml-ifying location choice
fixing the formatting of the estimation output
adding yaml to lcm

also updating the order for the lcm yaml options

added simple_relocation_rate to the location choice model
remove simple relocation rate

should have been in the relocation model - didn't notice this at first
check that coefficients is not None
adding from_yaml to networks
Fix YAML tests for RegressionModel

Also moved the creation of a dict representation out to its own method.
Fix LCM tests.
Move ordered_yaml and make_model_expression functions to new urbansim.utils.yamlio module.
Move some YAML output logic to urbansim.utils.yamlio for re-use.
Add utility function for turning any valid model expression into a patsy string

So that models can be expressed as strings, lists, or dictionaries and
converted to strings for statsmodels/patsy on the fly.
Use str_model_expression properties so that model_expression can be a string, list, or dict.
PEP8 fixes.
Merge pull request #20 from synthicity/mtc_branch

YAML Saving and Loading

With this RegressionModel and MNLLocationChoiceModel can have their configuration saved to YAML files using .to_yaml methods. Saved configurations can be used to instantiate models using .from_yaml methods. Matching methods for the other model classes will come soon (where applicable).

Another change here is some flexibility in how model expressions can be specified for regressions and location choice models. Previously these had to be strings compatible with patsy, and that's still fine, but now lists and dictionaries can be used.