Build tests according to the TestSpecification.

The tests are still an array of URLs. They will ultimately
need to be objects that can retain their results.
Move Target-related setup into Target.dispatch.

Pass a TestSpecification to dispatch instead of String[].
Use empty() to handle return-to-capture-page dispatch.
Remove useDirectURLsUntilComplete.
Remove setTTLUntilComplete.
Emit complete when all results are collected.

Replaces previous algorithm that emits complete when all
tests have been dispatched. This should fix bugs where some
tests are not accounted for in a batch.

Introduces Tests collection, which contains Test objects.
Also introduces their null counterparts, which are used to
generate URLs when no Tests are yet assigned.
Fixup previous commit: Add LiteralTest.
Add inline docs for Tests, Test, and LiteralTest.
Remove dead code around old urlQueue.
Add inline documentation for TestSpecification.
Add inline docs for NullTest and NullTests.
Merge pull request #26 from reid/test-spec

Ensure all tests have results before firing complete