Create `invocations` stack.

First steps toward general reentrancy. #74.
Pass entire previous invocation object to invoke.

Passing in the entire previous invocation object in order to track
abnormal ends. The `abend` variable is ridiculously global. #74.
Notes on exceptions from step functions.

See #68.
Track exceptions using invocation object.

Got rid of the ridiculously global `abended` variable. Now tracking
errors and abnormal ends using the invocation object which is available
to the subsequent invocation as the `previous` invocation variable.

Exceptions thrown from step functions are no longer handled, they cause
the error to propagate immediately, ignoring any errors gathered from
callbacks. Cadence error handling is not a replacement for try/catch.

See #74.
Add simple test of reentrancy.

Closes #74.
Merge branch `reentrancy` into `master`.