Throw a better exception when the user didn't add the MVC services

Issue #347 - Added a check in UseMvc() to verify if AddMvc() was called before.
Added functional tests for the same.
I am not registering it as IEnumerable. `GetServiceOrNull()` tries to do a `GetAllServices()` which enumerates all services of this type by doing:

```c#
Type ienumerableType = typeof(IEnumerable<>).MakeGenericType(serviceType);
return (IEnumerable)provider.GetService(ienumerableType);
```
Hence the mock.