Optimise FlatDictionary init for scenarios where no values are stored and llow inlining access
This provides specialized access to the type, and virtually eliminates its presence from routes where a flat dictionary is not used. This affects the route parameters primarily, but helps in particular because CoreRequestContext always starts out with an empty Parameters instance.
Empty arrays don't allocate any memory, so I'm not sure this is going to be a saving, as you have added a branch whenever accessing the parameters now
I think my measurements are macOS-specific then. Swift arrays do seem to have a different (default) implementation from the ContiguousArray one
@Joannis can I close this?