Further work on RPC, update workflow tests

Here for review rather than pulling (it will need rebasing/fixing when @fommil 's PR is taken.
Further work on the RPC protocol as a callable interface.  Work was done so that Project has no references or dependencies on the protocol.  Refactored the workflow test that use the RPC interface directly.   This has made extending the test a lot easier and I've managed to increase the coverage to >70%