[cwctl] fix cubicweb-ctl shell command (closes #2583919)
* add an uri parsing utility that documents a bit the uri cubicweb
supports out of the box
* cwctl: use this utility and refactor a bit for clarity (the novelty
here being real support for old style 'myapp', or:
* 'inmemory://myapp'
* 'pyro://pyro-ns-host:pyro-ns-port/myapp' (pyro access through a
pyro concentrator)
* 'pyroloc://host:port/pyro-instance-id' (direct access to a pyro
repository)
* 'zmqpickle-tcp://host:port'
* dbapi: refactor to sort out some of the complexity and restore
functionality lost in 62213a34726e