Switch various methods from `private` to `protected virtual` so they can be overridden. References #39
Better handling for ASP.NET IoC lifetime when calling from outside an ASP.NET request. References #39