Allow overriding of builtin tags.

Previously when --tags option was used all the builtin tags got
loaded first and registered, after that the tags from additional
paths got loaded and registered, but loading an override for a tag
didn't trigger re-registration, effectively meaning that one could
override all the other methods of a builtin class except the
constructor - but that's the most useful thing to override.

Now when --tags option is used, the TagRegistry is reinstantiated
with list of additional load paths, and on first access to the
registry, the classes from all paths get loaded in and only after
all tags are loaded will they get instantiated, so one can also
override the constructor.