Refactor code out of the main module file into more appropriately named files
Implement support for declaring promise/future methods natively

Fixes #7