Issue 267, and workaround for issue 300

This PR consists of:

* #267 -- This changes the way various modules get their fibers, and so it also changes how several tests work with those modules. So, the changes are extensive, but the logic of the changes is pretty straightforward.
* Two minor changes: deleting an unused variable, and a rename. 
* Workaround for #300 -- this is the complicated commit in this PR. I changed ReplicatedTablet to receive its UserTabletLeaderBehavior by dependency injection, so that it can be mocked, and so ReplicatedTabletTest can express its expectations succinctly. I'm not sure if this is the best way to get ReplicatedTabletTest to pass -- it may be simpler just to @Ignore the failing test for now, and do a more complete fix for #300 later. Comments or suggestions?

The build and tests pass except for TestScannerTest failing, which is open as #304 .