Cleanup Options

* Simplified the interface
* More thorough testing
Ensure a warning-free compile for clang++

* Move instantiation of static variables into .cpp files
* Adding virtual destructors where needed
* Changing the order of templated functions, where needed
Simplify Options

* A singular attribute is still considered to be a valid vector attribute
* Fixed seg fault when using copyOption on a missing attribute