Design now supports setValue

- It uses a new setValue utility function (which needs cleaning).
- No validation is performed (no type or range checks) yet.
- However, array indexing is fully supported.
Split tests up
Added test suits
Prepared getParameter for taking kwargs
Parameters override __eq__
Started merging the old and new DesignSpace
DesignSpace overrides __eq__
Moved DesignSpace to a separate file
Added factories for importing XML

XMLFactory is one of many possible factories for creating
DesignSpaces based on some existing information (XML in this case).
The test.tools module contains fake factories for testing.

Also forgot to update test_design.py since DesignSpace was moved.
Added tests for "dummy" DesignSpace methods
Added readOnly support to Design
Added extendScope to Design
Added another setReadOnly test
Added method stubs to new Design
Implemented getSpace in Design
Started implementing code mappings
Resolved question of String type
Added some testing classes
Added code mapping classes
Added an SParam parameter class and generator

The SParam class is likely to be refactored.
The generator only has very basic support for initializing
structured parameters.