Test suite and many implementation improvements

Some classes have been renamed to be less verbose, and all cpp files have been
eliminated in favor of moving the implementation to headers. This makes the
build process much easier, and although it may slow down compile time, this
library isn't that big anyways.

Also, the ParameterSet represents parameters internally both in a map and a
list, which makes accessing the members either way very quick. This was always
a performance problem with the previous version, given that it required
iterating over the map to find a parameter by index.

Several other small improvements have been introduced into the library as
well, such as a "safe name" for parameters, which is useful when serializing
them for storage. Also a simple test program demonstates usage of the library
as well as actually testing that the implementation is correct. Rather than
distributing a huge static library for gtest, I've simply rolled my own simple
test suite with macros. It's nothing fancy, but gets the job done.

PluginParameters is back from the dead!