Services don't need to reload app environment before starting (TORQUE-1049)

Previously we were calling ActiveSupport::Dependencies.clear in Rails
applications before starting each service of an application. This
causes issues if two services are starting at the same time and we
clear everything out while another service is in the middle of
initializating. Because services can't be reloaded without undeploying
and redeploying the application, this was unnecessary and we no longer
call that method when booting a service.
Drop inject and add TorqueBox.fetch (TORQUE-1054, TORQUE-1056)

Convert all internal uses of fetch to TorqueBox.fetch and modify most
integration tests to use TorqueBox.fetch, leaving a couple using the old
'include TorqueBox::Injectors' to ensure backwards compatibility.

Since TorqueSpec still uses inject, we've retained a tiny stub in injectors.rb
of TorqueSpec::Daemon#inject that just calls TorqueBox.fetch.
Store the Rails template.rb inside torquebox-rake-support gem (BZ-923892)
Move InjectionError so that it's in scope when used.
Merge pull request #147 from johnae/master

Move InjectionError so it's in scope when used
Add integration test to ensure InjectionError is raised for invalid injections
By default make the scheduled job a singleton job
Now the asynchronous calls to schedule or remove a ScheduledJob return
ExecutorCompletionService which can be used to determine if the task
(scheduling or removing the job) is finished.

We use the pool(long, TimeUnit) methond in schedule and remove methods
in the TorqueBox::ScheduledJob module. By default we'll wait 10 seconds
for the task to finish, but it's configurable by passwing the :wait
parameter to the schedule or remove calls. Specified value must be in
miliseconds.

TorqueBox::ScheduledJob.remove('JobClass', :wait => 5_000)
Make the remove and schedule calls remove true when the task finishes
successfully and false in case of timeout.

Updated docs to reflect the changes.
Fix the location of the module
Added back installing MBean for the job service
Try to force the job replacement timeout spec to actually timeout
Proper injection usage in AnotherSimpleJob class
[TORQUE-257] Provide support for 'at' jobs

Added suport for new way of scheduling jobs:

The job will be executed every 200 ms, from now, for the next 10 seconds
TorqueBox::ScheduledJob.at('SimpleJob', :every => 200, :until => Time.now + 10)

The job will be executed for the first time in 10 seconds (current time + 10 seconds), then every 500 ms, for the next 10 seconds (current time + 20 seconds)
TorqueBox::ScheduledJob.at('SimpleJob', :at => Time.now + 10, :every => 500, :until => Time.now + 20)

The job will be executed for the first time in 5s and repeated 3 times. The time between executions is set to 1.5s
TorqueBox::ScheduledJob.at('SimpleJob', :in => 5000, :repeat => 3, :every => 1500)

Added integration tests and documentation.
null injections means null injection string
Merge remote-tracking branch 'goldmann/TORQUE-257-at-jobs'
Revert "Proper injection usage in AnotherSimpleJob class"

This reverts commit ef91514c3f0e2bab94c8f05fbf6fb7a235e5df67.
Be a bit looser on the at_job integ expected counts
Revert "Be a bit looser on the at_job integ expected counts"

This reverts commit b35cf5a7981c38cd90bf116a00df7414ee8153e4.
Make sure we schedule the job after the component resolver is added to the scheduler