Share autocompletion service

The autocompletion code was duplicated in nativescript-cli and appbuilder-cli. This PR extracts the duplicated code in common lib.
This code is not very user-friendly. Consider that it fires. The user sees "Failed to update all shell start-up scripts. Auto-completion may not work." without much further info. They do not know neither **which** file(s) to fix, neither **how** to fix them to revert our changes. i think we at least should wrap each call into its own try/catch and give an explanation that the code between our markers must be removed.