Check in code to add a corrected_mode field for incorrectly confirmed trips

The code is self testing, but I also tested it independently using ipython notebook
Explain the different modes, what they mean, and how they are used
Change the mode query to support the corrected mode

And also:
- fixed the unit tests accordingly
- added a new unit test to support this new use case
Add support for corrected_mode to the machine learning pipeline

Modify the pipeline to read ground truth from the corrected_mode if present and
from the confirmed_mode if it is not present. This was a bit tricky because the
corrected_mode is not guaranteed to be present, and if it is absent, it matches
'confirmed_mode' != ''
Added test cases to ensure that the corrected mode is handled correctly

- In particular, load the training set a query string that includes both, and
  ensure that the count is correct, AND
- change the data to have an entry (the bus entry for best@example) have a
  confirmed_mode of 4 and a corrected_mode of 5
Added in support for the "air" mode in inference pipeline

It turns out that we had already included it in the analysis - it just wasn't
incorporated into the production pipeline. The accuracy for air is around 83%
with all features.

So it is much easier to include it in the pipeline now...
Merge pull request #3 from shankari/fix_air

Fix the mess with the air mode