Interim commit
Merge branch 'master' into faster-test

Conflicts:
	lib/typingpool/app.rb
Much faster tests.

Uses VCR mocks to eliminate network calls involving Amazon servers,
reducing test run time to roughly one-fifth the prior time (from 8
minutes to 1.5 minutes on my machine).

Allows tests to be run in "live" mode, hitting Amazon and SFTP servers
whenever possible, via --live flag to individual tests and via new
rake tasks test-live, test-unit-live, and test-integration-live.

Replaces underscroes with dashes in all Rake task names, so
e.g. test_unit is now test-unit.

Allows tests to be run in "record" mode by passing "--record" flag to
individual scripts. (Tests for tp-collect and tp-review cannot refresh
their VCR mocks/fixtures though automated recording, since these mocks
required manual interaction with Amazon web pages.)

Adds works_eventually? method to Typingpool::Test for repeatedly
trying arbitrary tasks (like checking for the existence of S3 buckets)
in the same manner as repeatedly trying URLs with
working_url_eventually?.

Modifies various scripts in bin/ to allow for passing of various test
options, including VCR fixtures.

Fixes Typingpool::App vcr methods to properly clear mock-related
monkeypatches out of the way when vcr_stop is called. (A bugfix.)

Specifies Webmock version in development dependencies to ensure
compatibility with latest version of aws-sdk, which was breaking with
Webmock/VCR. VCR issues a warning when tests are run but is perfectly
compatible in the context of our tests.
Fixes test bug.

Prior code failed to reconfigure fixture assignment.csv URLs in
tp-assign tests when copying fixtures over, resulting in an error if
you tried to run the test with an S3 bucket with a different name than
the one used to record it. This fix should make the tests run on
arbitrary machines again.
Fixes test bugs.

VCR fixtures were breaking on ASCII default systems and when audio
splits result in 7 rather than 6 chunks.
Simplifies test.

There's been a longstanding problem with the bundled audio files: They
merge into exactly 2 minutes and we split on 20 seconds. Depending on
the vagaries of which mp3splt and mp3wrap version you use and what
platform you're running on, this split could result in 6 or 7
files. Previously this was no big deal because we'd just adjust
certain tests to work with either six OR seven audio files, most did
not care.

But with the bundling of extensive VCR mocks this has become an issue:
We create mocks based on a run of six audio files (uploading,
downloading, assigning HITs, etc). If these mocks are run in an
environment where the original audio splits into seven rather than six
files, the mocks don't cover all possible network calls because now
there is an extra file to upload, assign, delete, etc.

The solution was simple: Change the split time from 20 seconds to 22
seconds, producing a uniform six chunks not suseptible to
vagaries. This has produced remarkably few roadbumps.
Cleaner handling of test errors.

Test#with_vcr now catches exceptions and stops recording when they
occur, allowing future VCR based tests to proceed without cassette
errors if triggered subsequently in the same test run.
Fixes test fixture timing error.

A unit test was failing because it failed to stub the Time. Time
stubbing is now provided in this test, adding a development dependency
on Timecop. Fixtures also updated.
Adds time fixture required by prior commit.
Locks test HTTP mocks to read-only/non-network mode by default.

Previously, VCR fixture mocks were always loaded in a read-write mode,
so that there was a risk of recording if an unanticipated URL arose at
runtime, even if recording was not intended (i.e. no "--record"
switch).

Now VCR fixture mocks are in read-only mode by default and changed to
read-write mode only during recording sessions. See
App::Test#vcr_load, which replaces the poorly names
App::Test#vcr_record.
Refactors Test::Script.

Removes silly and unused methods. Simplifies naming of methods.