Update to testComponents

Made it more general and to behave more like what was described in issue #66.

It is designed to test all components for their "structural" integrity. That is they can: clone, de/serialize, connect to an aggregate and verify its connectors, add themselves to a system, contribute to state initialization and can do so without leaking more than 1/10% of their initial memory footprint. These can be tightened more once we find the source of these small leaks.

Of course not all (majority of) components do not pass. The main issues are dependencies not specified via connectors and memory leaks. Body, all Joints and a handful of Forces have been fixed but there are many many more to be done. The test however is in working order and has proved effective at finding issues with existing Components. 
Oh, this seems bad. I think this indicates that `getRegisteredObjectsOfGivenType()` is putting non-owned references into a return type that assumes ownership, meaning there will be much heap trashing in later code by programmers who aren't as on-the-ball as you are. Why not use a safer return type, such as `std::vector<Component*>` which would have no such assumption about ownership?