Adding new HedonicModel class and urbansim.models module

Going to start representing individual model types with configurable
classes.
Adding tests for hedonic.apply_filter_query.
Enhance apply_filter_query to be a no-op if no filters are supplied.
Tests for fit_model and predict.
Test of the HedonicModel class.
Adding a couple safety checks in the hedonic modeling

- Verify that prediction results have the same length as in the
  input data. A mismatch usually indicates that there are null
  values in the input data, something that statsmodels apparently
  does not check.
- Raise an error if a user tries to get a model prediction before
  fitting the model.
Add HedonicModelGroup class

Managers HedonicModel instances which are all for different segments
(groups) of the same table.
Import HedonicModelGroup to the models namespace.
Beginning of a LocationChoiceModel class. (Implicitly MNL.)
Make sure LocationChoiceModel is in the urbansim.model namespace.
Move apply_filter_query function to models.util module for easy sharing between model classes.
Remove LocationChoiceModel.predict until I get a chance to implement it.
Add .report_fit method to LocationChoiceModel.
Add prettytable to the requirements for console reports.
Simple and not-very-stringent test of LCM estimation.
Add a couple notes to interaction.py.
New, basic transition model based on a growth rate.
New population target table based transition model.

And some test refactoring.
Function for choosing movers according to a table during relocations.
Add a RelocationModel class to help with repeated relocations using the same table of rates.