Issue95

Fixes #95 

@rcrichton if you could please review?

I also changed the router error handling to `resolve` rather than `reject`; otherwise the transactions would get stuck on "Processing" when an error occured. We could probably improve that and maybe even store the error as part of the transaction, but it might be better to pick that up in a separate ticket (out of scope for #95)