CLN/ENH: Stop instantiating all offsets on load.

Use a more flexible lookup based on prefix then delegate creation to
class' `from_name()` method. Totally get rid of hasOffsetName (not necessary).
Finally, make some inheriting go on to simplify things.
Merge pull request #5189 from jtratner/stop-instantiating-offsets-on-load

CLN/ENH: Stop instantiating all offsets on load.