This changeset allows the second parameter of the Bundle command (a
dictionary) to override bundle object fields that come from parsing the
bundle spec. This means that
Bundle 'abolish.vim', {'name' : 'abo'}
will be installed in a bundle directory named 'abo', rather than
'abolish.vim', which is the name parsed from the bundle spec.
By storing bundles in a sorted dictionary (dictionary + list of keys),
the bundle does not need to be reparsed during installation if it has
already been initialised, and any additional options passed in the
original command are kept.
This changeset is also an initial attempt to stabilise the name vs
spec naming convention, where a bundle spec is whatever is used to
specify a bundle, be it a name, user/name, full uri, etc., and name is
the name of the bundle that will become a directory under the bundles
directory.
closes#1
Uris for repos specified as user/repo end up being https://github.com/user/repo. For some reason, github allows cloning from such uris, however, it is better to rely on the addresses that github provide for cloning, and those include the trailing .git
This change appends .git to github repo uris when needed.