NH-3489 improve GetEffectiveParameterLocations performance

Added a cache of backtrace-to-location with the `BackTrackCacheParameterList` class, that is used by `SqlCommandImpl`. `GetEffectiveParameterLocations` still use the old code if a standard collection is passed for compatibility reasons.

The only public change is `SqlCommandImpl.SqlQueryParametersList` that now has a return type of `IList` rather than `List`.

A performance test case has been added. A ~40% performance improvement has been measured for the test scenario.