Quite a big re-shuffle bringing in working first and last requirements.
Split dependency tests out into their own file.
Tests for period-specifying wrappers.
Periods tests.
tests and repr for Requirements.
Implement fully imperative runner usage.

Also refactor to make call loop nicer.