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