Feature/data container

This is a draft implementation of the DataContainer object. The class subclasses the python dict and 
constrains the keys to be members of an IntEnum (see enum34 library https://pypi.python.org/pypi/enum34/1.0 a packport of the python 3.4 enum library)

The DataContainer in more detail:
- Can be initialized and updated like a typical python dict.
- Support keyword based initialization supports using CUBA member strings.
- All keys are always CUBA enum members.

*note*:
- The `ID` and `COORDINATES` items are not part of the CUBA enum, the logic behind this choice is that these attribute should be part of related classes
- The DataContainer does not enforce the type of the values in the dictionary. I feel that it is going to make the implementation much more complicated. If we need it, we can always add it later.

*pending*:
- [x] tests
- [x] update requirements
- [x] add some benchmarking code