Added choice tests and fixed a minor bug

Now checking that SChoices do not have values in a design.
Added Interval and IntervalParser classes
Refined Interval

- Added the reverse of parse to IntervalParser. Given a tuple of
    limits, create the corresponding spec string.
    Note that the produced string need not necessarily exactly match
    the string that was used to create the Interval. A None limit will
    always be an open interval, since that makes more mathematical sense.
    If the limit was created with a closed None limit, then the input
    and output will differ.
- It is now possible to create an Interval with either a string or a set
    of incl/excl min/max arguments.
Expanded Interval

- Added methods for checking open/closed status.
- Added a method to check whether a value is contained by the interval.
Added some documentation to Interval classes
Fixed a small problem in array tests

The tests for randomness of the point choice array would sometimes
fail. Increasing the number of iterations doesn't help, because the
array size is the limiting factor.
Added tool for testing with intervals