Add Apache 2.0 License

Without this patch the license of this software is not clear.  This is a
problem because we'd very much like to see people contribute new
functionality and additional integrations.  They may be hesitant to do
so if they're unsure of the software license.  This patch addresses the
problem by making the license clear in the README.md and the LICENSE
file.

[ci skip] because no behavior is affected
Merge pull request #18 from jeffmccune/add_license

Add Apache 2.0 License
Update README with interactive information
Add terminal-notifier dev dependency and update Gemfile

This patch updates the Gemfile dependencies and adds a development
dependency on terminal-notifier which is used by irbtools.
Add a log message when a card already exists

Without this patch the app does not let the user know when a job does
not take any action because a found card already exists.  The problem
happens in all jobs that implement the default behavior of the
BaseTrelloJob.

This patch addresses the problem by logging a message with the card
short id and URL.
Store the payload data in PullRequest#message

Without this patch the original payload data of the pull request event
is not stored along with the delayed job.  This makes it difficult to
change the behavior of the job classes in a manner that is compatible
with already stored jobs.

This patch addresses the problem by storing the entire de-serialized
object as an instance variable of the PullRequest instance.  The
instance variable data is accessible through the message method.
Methods that implement job behavior should directly read the message
data and not other instance variables in order to be backwards
compatible with the data stored in the jobs table.
Search multiple boards and archive a card when a PR is closed

Without this patch the app takes no action when a pull request is
closed.  This is a problem because we often need to manually manage the
card on Trello.

This patch addresses the problem by searching for the card on the
primary board containing the list ID.  If the card is not found, the
app additionally searches for cards located on the boards identified by
the TRELLO_BOARDS environment variable which is expected to contain a
comma separated list of board identifiers.

This patch does not make any effort to figure out why the pull request
was closed.  It simply finds the card associated with the pull request,
adds a comment, and archives the card.

Finally, the behavior of the find_card method is changed by this patch.
An identifier located inside the parentheses and matching the regular
expression /\(PR .*/\d+\)/ will be extracted from the name passed to
find_card.  This substring will then be compared against all the card
titles on the multiple boards.