Async user mapper

Adds Tests For [PR 1643](https://github.com/NancyFx/Nancy/pull/1643).  Also "Nancy-ifies" the code to keep it stylistically similar to the rest of Nancy. (Only one small change). It fixes a bug in the otherwise excellent implementation provided by @ExUltima (the UserMapper was still required even if an Async one existed).
Well, I'm not sure why that would make sense. If the same instance implements both `IAsyncUserMapper` and `IUserMapper`, and it's assigned to both properties the configuration is invalid? It's a bizarre case, but could still happen, and IMO, it should be perfectly valid. Why sacrifice readability to prevent this use case?