Merged most of the scheduler branch changes into trunk.
Bugs Fixed
===========
#77 Scheduler runs even after webapp is undeployed.
#357 Implement more flexible scheduling for TimerSchedulerService.
#555 Add shutdown method to scheduled tasks.
#666 Allow scheduled task to be started at a specific date and time.
#667 Allow scheduled task start time to be nullable.
#668 Delay scheduled task startup to avoid "could not execute query" exception.
#671 On shutdown of OpenMRS (JVM), scheduler should shutdown all tasks.
#674 Scheduler should maintain a single Timer object.
#669 Change "Running?" column header on the Task List page.
Known Issues
=============
#673 Scheduler should check to see if task is already running before starting the task.
#356 Move passwords from global properties into runtime properties file.
#672 Remove exeception when stopping an already stopped task.
#675 Add last execution time to TaskDefinition.
#670 Implement isExecuting() feature for scheduled tasks.