Topology and force field processing

This is basic functionality for topology and force field processing, which should make simulation preparation easier, especially, with anything more complex than water. It builds on the input preparation code that is already in.

Functionality:
- Read atom types, bond types, angle types and torsion types from files, Python strings, or Python data structures.
- Specify molecular topology in Python, using simple syntax.
- Write PINY input based on this parsed data.

Still missing (contributions welcome, of course):
- Full topology processing - generation of angles and torsions based on bonds alone.
- Support for 1-4 interactions.

This only adds to the Python code, does not touch PINY itself.

An example of use is also included.