Add initial application code

Adds initial application boilerplate as well as:

- wrap function: wraps a promise value with a given object
- notify function: calls a function with no arguments and passes through the promise value