Added .wait() method and .result property on tasks

* Executing tasks can now be .wait()ed for to begin execution
* Results of tasks can be saved automatically for a period of time, and fetched via the EnqueuedTask object returned on .execute()
* Updated documentation on methods and functions
* Added graceful shutdown on SIGTERM