Add some existing methods in the interface.

Introduce addRule(), addPrivateRule() and removeRule() in the router
interface.
ID is given before methods when adding a rule.
Create a generic router.

And HTTP and CLI routers extend the generic one.
Use references instead of copies for call/able.
Allow to unroute more complex PCRE patterns.

If a capture has a repetition operator, such as: ?, * or + (in greedy,
possesive or lazy mode), it will be well replaced.
Reorder method declarations.