Move location of log file into its own directory.
Rubygems is included automatically in recent versions of Ruby.
Prevent real HTTP requests when running specs.
Add some specs around the Harmonia assignments action.

Note that I made some changes to the application code in this commit in order
to make it easier to test:

* I converted a bunch of settings which were being stored in local variables
into proper Sinatra settings so they could be accessed from the specs.
* I changed the "dictionary" of Harmonia people names vs Trello member IDs to
instantiate `Trello::Member` objects.
* I moved the `card.update!` statement inside the conditional where the due
date is set, because I realised that `Trello::Card#remove_member` and
`Trello::Card#add_member` do not rely on this call.
Use same authentication mechanism for Harmonia & Trello requests.

* Reject Trello event requests without authentication token using "410 Gone"
so old Trello webhooks are deleted [1].
* Add a few specs for Trello events actions.
* Use string literals for Trello events path - extracting into a setting was a
step too far.
* Make local variable names more consistent.

[1]: https://trello.com/docs/gettingstarted/webhooks.html#deleting-webhooks
Add Harmonia task URL to Trello webhook callback URL.
Use Mechanize to mark Harmonia tasks as done.

Added specs for handling POST requests to Trello events action.
Indent Sinatra app code prior to moving it into a class.

I think this will make it more obvious what's going on.
Move Sinatra application code into a WebhooksApp class.

This is so I can inject some dependencies into it.
Extract Harmonia class to encapsulate requests to Harmonia.
Move Harmonia class into its own file.
Capitalize 'head' HTTP method in spec name.
Added specs for unhappy paths for Trello events.
Extract Trello event logic into a TrelloEvent class.
Move TrelloEvent into a separate file.
Unit test TrelloEvent to avoid combinatorial explosion.
Move ancillary files into 'lib' directory.
Add comment to card when task is marked as done.