Object versioning

This is the PyOP2 part of George's masters project last year. It enables version numbers on Datacarriers which are automatically updated whenever the data is written to.