Feature/rest calls

- Apologies for the large PR, fixing the tests took some refactoring
- To make the demux executors non-blocking, I added some become/unbecome logic 
- Moved the request work to the executors and they will only pass the request up to parent if they are idle. Not sure if this is ideal
- Return response codes from the api endpoints

Ok, I may need to add an explicit message to change the state of the actor then since it changes behavior directly when demultiplexing has finished so there is no straightforward way of testing the busy behavior. I did not check with scoverage, will do.