Throw when attempting to resolve unregistered services

- Ninject and Autofac already exhibited the correct behavior.
- ServiceProvider now throws instead of returning null.
- Our NinjectServiceProvider now throws instead of returning null.
- ServiceProvider will now return an empty IEnumerable if no services
  are registered matching the generic type parameter

#78
Implement GetServiceOrDefault without a try/catch

- The non-generic version of GetServiceOrDefault is GetServiceOrNull
- Update the Autofac and Ninject chained resolvers to not rely on try/catch
- Remove the HasService extension method so no one will be inclined to use it
- Fix fake fallback providers used for testing to correctly provide IEnumerables

#75