Supervisors

Someone else on backend should look at this and sanity check this.

Basically for each supervisor we can create a variable number of round robin selected actors and forward any messages the supervisor receives to the correct actor.

We can also do interesting things where we allow actors to fail that are taking too long or ran into a bad message, and we simply retry or ignore them.

Did some smoke testing and this seemed to work well, someone else should try it though and see if they can get a concurrency exception of some sort.

I plan to compose futures with whatever processor is returning, but that will be in my next branch.