Added complex type support

This patch adds complex type support in a hopefully non-intrusive way.  All tests pass on my machine in python 3.4.

I have not extensively tested nesting types, but from playing around it seems to work as expected.