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 SlackAgent

The SlackAgent lets you receive events and send notifications to slack
Add default username
Merge branch 'master' into threaded-background-workers
Threaded background worker now is the default
Merge pull request #342 from tonmoy-saikia/slack_agent

Add SlackAgent
Solves #354
Merge pull request #318 from dsander/threaded-background-workers

Provide a new threaded background worker
Add simple MQTT support to subscribe to, publish messages.
Tweak wording
Assume the payload is going to be JSON
Indent description
Add presence validation
Add db migration
Made expected_update_period_in_days an option
Default the update period if not set
Remove requirement for expected_update_period_in_days (since we default it if it doesn't exist)
Add fake MQTT server from ruby-mqtt gem
Introduce a max_read_time