Reorganized code, added utils.py and validation.py
Starting rewrite of responses and transition sequences
Functions rewritten, tests are yet to be adapted
Renamed modules and tests, transition sequences still broken

Rewrite of event response and transition sequence related functions is
almost finished, with tests adapted/written and mostly passing.

Previous solution turned out to be insufficient when submachines were
introduced. Main difference is that now event is propagated from top to
bottom through the active branches of the tree which is recreated on the
fly from HSM state set, making parent state respond only if no state in
subtree below it responded.

Modules and tests have been renamed to have more meaningful names, and
some of the tests were split into multiple files.

renamed modules:
  * hsmpy.statemachine -> hsmpy.elements
  * hsmpy.util -> hsmpy.logic

renamed tests files:
  * test_statemachine -> test_HSM_without_submachines
  * test_submachines -> test_HSM_with_submachines
  * test_helper_functions_structural -> test_structural
  * test_helper_functions_transitions -> test_transition_sequences
  * predefined_machines -> reusable

new test files:
  * test_paths_between_states
  * test_reformat
  * test_responding_to_events
  * test_entry_sequence
  * test_join_paths_tree_from_state_set