Provide basic threads and promises on JVM.

This builds upon the interop primitives and threading example by
sorear++ to provide a minimal Thread class, along with a thread pool
on which code can be scheduled to run. This in turn is used for a
basic implementation of promises/futures, with an async sub that
takes a code block and returns a Promise.