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.
Actually, there is one major reason to keep this in, legacy versions.
Older versions of Minecraft such as 1.2.5 do not like having the library external, as the minecraft jar has all of it's contents signed and the JVM throws a fit when signed classes come from different jars with different signatures. 
Hence why I introduced the 'copyAndStrip' functionality.
So, re-add it with a config json gate around it.