- request/response manner of usual protobuf workflows is enforced, workflows are expected to either return a valid protobuf response, or raise an exception
- added wire.FailureError exception that allows workflow to provide Failure code & message
- pin workflows simplified
TODO: all this workflow work does not really belong in trezor.wire
- lazy loading and importing of protobuf messages
- workflow dispatching through codec pipeline on the first message report
HACK: workflow killing
TODO: cap on concurrent sessions
TODO: ui locking/queuing
TODO: session storage
TODO: tests