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

Yes, the executors should behave in the same way as the IlluminaDemultiplexerActor when it comes to accepting/rejecting the job because of access to the runfolder. The job will still be sent to the next executor when a new request for work is sent to the master, I was just considering whether the IlluminaDemultiplexerActor should take a shortcut and send it directly to the next executor