Version Inheritance Support

Launcher from version 1.5.1 now supports version inheritance which has three main benefits:

* User now **does not need to download vanilla version prior to installing** because the launcher handles inheritance of unavailable vanilla versions just fine and will happily download the jar and JSON on first run
* No longer necessary to keep installer's bundled JSON up-to-date with Mojang libs from vanilla, bundled JSON now only needs to contain libs to be *added* to the classpath
* Mojang libs (authlib, realms) will always stay in sync in the future if vanilla version is updated

Prior to the resolution of [MCL-2964](https://bugs.mojang.com/browse/MCL-2964) there was an issue with inherited versions, this is now resolved and so adopting inheritance seems like a good plan.

This pull request comes with a free frogurt.
I disagree, there is no use-case for duplicating a vanilla jar any more, it was only done because it was *required* by the launcher before and that's not the case any more. If you want to adopt version inheritance as a thing, this PR makes sense without introducing additonal complexity. As I mentioned in the PR notes, one of the *major* benefits of this approach is no need to rely on fetching the upstream version dependency. Keeping this code negates that.