Expanded intervals

- Now have a type attribute.
- Dependent intervals can be combined with new (evaluated) endpoints.
- Rearranged tests.
Started integrating intervals into params
Cleaned the testing tools

Removed the assertInterval function and renamed TestInterval
to Interval. The class works as before.
Added testing tools

- Added Generator class
- Added ValueSink class
- Updated tests accordingly

Generators should be tested through the Generator class instead
of the assertGeneratorXXX functions.
Added rudimentary value validation

- setValue now checks (some) value validity
Ooops, forgot to commit these changes

Made a bunch of last-minute panic changes to pass as many tests
as possible.