Add QNameModule coding
Coding on QNames is effective when there are a lot of same QNames,
but there are cases where QNames themeselves are not reused --
for example YangInstanceIdentifiers and small read subtrees.
These typically end up using different QNames from a small set
of modules, hence coding modules actually helps them quite a bit.
This patch adds a namespace/revision cache, so that encoding such
QNames is also efficient.
JIRA: CONTROLLER-1898
Change-Id: I6cd0885ef605e4a1bf7b768ffe215e9eb3e2fbc5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>