Minor cleanup in param
Added tags to parameters

This is an unprofessionally large commit. :p
- Updated much code to deal with the new parameter arguments.
- Cleaned up a lot of string literals.
- Updated some comments.
Added support for String parameters

This is a quick and dirty solution.
Removed String mapping
Lots of changes

Here's another unprofessionally large commit.

- Lots of cleanup
- Moved preset factories from test.tools to test.factories
- Added some testing tools to test.tools
- Added a detailed array test
- Added more testing classes (points, shapes)
- Choices work more or less fully now