Fix for GEOT-4319, backported to 8.x

In a default configuration, the URI passed in to these classes was always
turned into a String and then passed to the ClassPathGridShiftLocator, which
attempted to load from the stringified URI. This rendered the loading of grid
shift files to be impossible.
This patch resolves that problem, taking Strings as before and using them as
references to pass into the GridShiftLocator instances. Additionally, the
classes now have a separate constructor that takes URLs directly.

(this is just cherry-picked from master, there is no difference in the code)