Improving usability - support for mnemonics and omitting commands

Hi, folks!

I've been using GVM for some time now, it's an awesome tool -- thanks a lot for the great work! :)

Here I want to propose some small changes in the way the commands are dealt.
This patch adds some small usability improvements, namely, it enables using shorter names for commands and also allows to omit the command 'use' -- if only the candidate is provided.

Therefore:

`gvm ls griffon` is the same as `gvm list griffon`
`gvm v groovy` is the same as `gvm version groovy`

And:

`gvm grails 2.1.2` the same as `gvm use grails 2.1.2`

That's quite cool, am I right? :)

Another change that would be nice would be to also work if the command and candidate are given in the wrong order -- so if I type `gvm vertx list` it automatically corrects for `gvm list vertx`.

I'm willing to implement this -- with the proper generic treatment for the candidates -- if you guys are willing to upstream this sort of changes. :)

Thanks!
Elias