CLI: fix autocomplete bugs and describe limitation

This commit fixes autocompletion bugs by getting rid of most of the ad-hoc
code in the match / complete methods in the top level parsing engine.

To make this possible, commands now return a single matching token, making
more extensive use of the Or matching token and a new Concat token.

In the process of reviewing all commands' pattern definitions to adapt
to this change, the describe pattern was extended to allow inspection of
collection names, so there's no need to pre-create an object to describe
its structure. It's now possible to do:

> router router0 port port0 describe bgp

Fixes #28

Signed-off-by: Guillermo Ontanon <guillermo@midokura.jp>
Merge pull request #31 from gontanon/autocomplete

CLI: fix autocomplete bugs and describe limitation