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.
[auto] Merge from Router

    • #9a06477 — Add some existing methods in the interface. (Ivan Enderlin, 2013-04-26)
    • #5e50774 — ID is given before methods when adding a rule. (Ivan Enderlin, 2013-04-30)
    • #34bc457 — Create a generic router. (Ivan Enderlin, 2013-04-30)
    • #526fd30 — Use references instead of copies for call/able. (Ivan Enderlin, 2013-04-30)
    • #9b4dee9 — Allow to unroute more complex PCRE patterns. (Ivan Enderlin, 2013-04-30)
    • #62eaaba — Reorder method declarations. (Ivan Enderlin, 2013-04-30)

---

Merge remote branch 'library-router/master'