Provide an optional threaded background worker

Due to the three background workers (scheduler, twitter stream and delayed job)
huginn needs a lot of memory to run (about 520MB on my dev machine). This PR
introduces an optional threaded background worker which combines the three current
separated processed into one (reducing the memory footprint to ~260MB).
Since just one instance of the of every background processor is running at a time
there should not be any threading related issues.
The main gotcha of this is, that it's most likely not possible to run multiple
delayed job workers concurrently. The ultimate solution would probably be switching
to sidekiq with sidetiq as scheduler, but that is a different task :)

When running on MRI the GIL should not be an issue because it is released for most IO
bound operations (waiting for the database/website/sleeping).
Use threaded workers in the chef production Procfile
add basic scaffold of scenarios, including the ability to add agents to scenarios, edit scenarios, and view scenarios.  next step: import and export
Implement ImapFolderAgent.
Define expected payloads and reuse them.
Include "folder" in events.
Cover the "mark_as_read" option.
Check regexp validation.
Convert 'port' to integer.
Unbreak with Ruby <2.0 not having File::FNM_EXTGLOB.
Fix chef cookbooks to work with ubuntu 14.04

The primary issue was that libshadow-ruby1.8 is not
present in 14.04. The secondary one is that default
ruby in 14.04 is 1.9, so update-alternatives step
fails.

Fix:
* drop the requirement of libshadow-ruby1.8, since
we set 1.9 by default.
* see if 'ruby' points to 1.9 and update symlinks only
in case it doesn't
Elaborate on how to specify a case-insensitive pattern.
Mark duplicated mails as read even if event creation is skipped.
Document how this type of agent memorizes and deals with already seen mails.
Merge pull request #330 from racktear/ubuntu_14_04

Fix chef cookbooks to work with ubuntu 14.04
Merge pull request #328 from knu/imap_folder_agent

Implement ImapFolderAgent.
fix param sanitizating for account editing
Merge pull request #341 from cantino/fix_account_editing

fix param sanitizating for account editing
Add SlackAgent

The SlackAgent lets you receive events and send notifications to slack
Add default username