Handle statically-allocated PyTypeObjects by having the collector keep a list of them.

Even with some optimizations it seems to hurt perf a little bit...
we'll have to see if it's worth it.

Also, rename "static roots" to "permanent roots", since it's
slightly different than the "static allocation" problem we're
tackling here.
Support for __get__ and __set__ for descriptors
Merge pull request #123 from tjhance/des

Conflicts:
	src/runtime/objmodel.cpp
Change 'expected: fail' to 'skip-if' since they work on some platforms and not others
Import some more CPython header files
fixed object.__new__ error message for >=2.7.4