Refactor based on product owner's suggestions:

- Remove command class, which served only the purpose of interface
  declaration.
- Use rspec-spies to create better mocks
- Create a shared example group for commands.
- Use `let' to set up context instead of creating temporary variables
  inside example groups.
- Wrap the terminal stuff so it can be elegantly skipped during testing.
- Fix formatting mistake where an empty line was inserted in an rdoc
  comment.
- Use to_sym and not intern; this is not lisp.
Refactor specs.

- Don't nest `context` blocks.  Instead, combine `context` and `describe`
to increase readabiliy.
- Be consistent about use of capitalization in specs: only top level
forms are capitalized.
Merge pull request #12 from expez/keyboard

Add support for keyboard events
Add bin/hatter.
Add keybindings to config file.
Merge pull request #13 from expez/refactor

Keys in config file and bin/hatter
Update the hatter/bin script.

Now uses /usr/bin/env ruby to launch hatter.
Add contributing.md.
Fix bug preventing the running of commands.
Add more stuff to the config file.

- Our email address for sending mail
- The delivery method used when sending mail.
- Key to compose mail.
Add configuration file for travis-ci
Merge pull request #15 from expez/travis

Add config for Travis
Refactor command_factory and add exception handling.
Implement the ComposeCommand.
Merge pull request #14 from expez/send-mail

Makes it possible to use Hatter to send mail.
Use ~/.hatterrc if found
Merge pull request #16 from ZachMassia/example-rc

Use ~/.hatterrc if found.