Cache HttpControllerDescriptor in NamespaceHttpControllerSelector

Similarly to how `DefaultHttpControllerSelector` does it, when `NamespaceHttpControllerSelector` is finding duplicate controller types, it should generate `HttpControllerDescriptor` for each type straight away and cache them, rather then recreating a relevant descriptor every time the selector runs.

There is no issue reported for that, but it's more of an optimization PR, so not sure if an issue is really necessary.