Some datastructures moved from __init__.py into their own submodule.

__init__.py was become too big and mixed together logic with
datasctructures, which was little bit confusing.

Hence all datastructures, which doesn't have dependencies to other aleph's
submodules was moved into their own packages.
Added ._check_required_fields() method, and simple test.