Refactoring.

- Remove useless copyright paragraphs which decreased readability
- Refactored Machine#fire_event big time
- Made StateTransition#perform_guard private
- Moved the Transitions#available* methods out of the core module and
  into a separate Presenter module to make it clear that those methods
  are convenience methods