VCR.py

This branch refactors all of our online tests to use VCR.py, such that the responses can be recorded, and then played back for unit tests without going online.

This is facilitated by the `use_vcr` decorator added to the tests package. When a test method has this decorator applied, a new cassette will automatically be created for its online interactions. In addition, the 'vcr' nose attribute will be applied, as well as the 'online' attribute if the test method might go online. Whether it goes online is determined by the record mode of VCR, which can be set using the `VCR_RECORD_MODE` environment variable. Modes are documented here: https://github.com/kevin1024/vcrpy#record-modes
`VCR_RECORD_MODE` can also be set to 'off' to completely disable vcr for tests.

Since the nose online flag is set dynamically, all former online tests will now run offline from a playback in jenkins and travis CI jobs (which have record mode set to 'none'), and the daily online job has been changed to run online tests with the vcr record mode set to 'all', to actually test against the online sites.

In order to update the cassette file for any test, the cassette file can just be deleted and it will be remade on next run.

TODO:
- [x] Dynamically fill a `cassette=` keyword argument of test methods, so that they can make assertions against their cassette? This would allow easy testing of caching, by asserting online source didn't get hit more than once.
- [ ] ~~Allow parameterized form of decorator to pass arguments to `vcr.with_cassette`. Perhaps also an option for filling cassette keyword, rather than the above magic keyword filling idea.~~ Decided not to do this until we have some need for it.