Adding .AndDoes() option to Returns() and cleaning up SubState

- Returns() and co. now return ConfiguredCall objs, so additional
  call configs can be made like .AndDoes(...) for callbacks.
- Removing properties in SubstituteState that are actually stateless
  dependencies.
- Removing CallSpecFactory creation cruft from SubstituteState
  Yes, a factory factory. No, I'm not proud.
- Renamed IResultSetter to IConfigureCall
  Handles configuring results and actions for calls/call specs.
- Splitting call spec retrieval logic out from ConfigureCall to new class.
  GetCallSpec now holds logic of how to get call spec from last call and
  pending call spec.