Add a scheduleMessage function.

Also add options to pass in extra details to addReply
Refactor to use messages.scheduleMessage & messages.addReply
Carry over the type of the scheduled_task
Fix alreadyFun function.

Fixes #22
Merge branch 'feature/22' into develop