Python improvements: TypeDesc

First step of many to thoroughly scrub our Python bindings, make sure they completely work, expose as much of the C++ functionality as possible, set up thorough unit tests so we never break anything moving forward, and try to document things better so that it's easy for people to add Python hooks for every new C++ feature without having to be experts in boost::python (i.e. there will always be something analogous that can be cut and pasted).

Small steps: first we just tackle TypeDesc.

* Make a truly thorough unit test
* As a result, fix tons of little problems in the Python wrappers
* More complete Python support for TypeDesc features
* Some minor (back compatible) additions to C++ TypeDesc to make it easier.