Datahandler and Unified Data Format

Hey Dan and Robert,

this is the pull request for my proposal:
https://docs.google.com/document/d/1IWmX4oDbQbVtUoRNzSRG3yMpoBQ7LseVCQhGnuOZz_A/edit?pli=1#

Lint runs without any issues and so do all of the tests. (Including additional ones I added)

As you can see I have done some performance tweaks and this solution is now is faster than the current version in every aspect.
This implementation may still be extended and changed here and there but it is fully functional and introduces the new structure which fixes some bugs and is a great benefit for future feature development, at least in my point of view.
I would really appreciate if we could think about pulling it in the near future as an internal change and only add external options later when you have the feeling that everything is the way it should be.

The problem for me in the moment is that I have to merge every changes you do on the master and this is quite a bit of work. I think my proposal is in the right stadium to be integrated and further developed on your code base.

What do you think?

Best Regards

David