Adding option to download remote files as part of the gem

- Adding minitar as dependency
- Adding vendor file to handle the tasks
- Adding vendor hook to install and update actions

the vendor.json file should be placed at the root of the gem file
This file defines all the remote sources that should be downloaded.
The content of it is an array of hashes.
Each hash has the following settings:
- url
- sha1
- files

url is the url of the remote source
sha1 is the sha1 fingerprint we use for validation of the downloaded file
files can have different settings and is only used for .tar.gz / .tgz files
not setting it extracts the whole tar.gz file
An array of files allows to extract specific files
A Regexp allows extracting specific files

Fixes #2029
Move most common functions away into a util method

Fixes #2029
Update after review

Fixes #2029
Update License

Fixes #2030
Fix asciidoc formatting of the base config options

Fixes #2035
Fix asciidoc link to string reference

Fixes #2038
More asciidoc fixes for base input and output

Fixes #2038
Fix formatting for word plain

Fixes #2038
Changes to generated docs and their templates.
Handling feedback for PR#2041
Force the uninstall of a plugin at install or update time.

It can happen we want to update a plugin that is a dependency for an other plugin
which will result in a warning and a manual action at uninstall phase of the install/update tasks
Since we are 100% sure in these cases that the plugin will be installed again we can force the uninstall part
not to alert us about it.

This solves the issue we otherwise would get:

Gem::DependencyRemovalException: Uninstallation aborted due to dependent gem(s)

Fixes #2034