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.
You might want to pass in the names of methods into the resx string. This avoids having to deal with method names being accidentally localized: `Please add required services by calling '{0}' before calling '{1}' or '{2}'.`

`FormatUnableToFindServices("AddMvc()", "UseMvc()", "UseServices()");`

and if you could actually get to the method from the place you're throwing, you could also do by doing `nameof(AddMvc)`, `nameof(UseMvc)` etc