Refactor typeconverter.
Refactor typeconverter.

* Now can handle specifying internal list structure through
  TypeConverterSequence.
  * TypeConverterSequence if it has one element assumes that all list
    elements should look like this. If multiple elements are present it
    assumes that the list should always be that size and does a one to
    one mapping to check types and discards anything past the length it
    supports.
* TypeConverterSequence and TypeConverterMapping work together and
  support arbitrary mixtures and depth.

joaander/hoomd-blue,joaander/hoomd-blue,joaander/hoomd-blue,joaander/hoomd-blue,joaander/hoomd-blue,joaander/hoomd-blue