Adds a "chain" function to Utils/Async

Adds a "chain" function to Utils/Async that makes it easy to chain together asynchronous promise-returning functions with synchronous functions. Also includes unit tests.

This will definitely be useful for our node stuff. It may also be useful elsewhere.