dev: singletonmixin: Remove singleton mixin

There is no need for a Singleton class in Python,
modules fulfil the same purpose.

* clidisplay: Remove singleton for CliDisplay
* term: Turn TerminalController into a module
* cache: Turn WCache singleton into module
* idmgmt: Turn IdMgmt singleton into module
* schema: Convert schema singleton to module
* msg: ErrorBuffer doesn't need to be a singleton
* report: Report doesn't need to be a singleton
* cibconfig: CibFactory doesn't need to be a singleton
* cibstatus: Remove usage of Singleton
* singletonmixin: Remove the singleton module as it is no longer used
dev: cibconfig: Eliminate external use of is_cib_sane()
dev: vars: Rename vars to constants

The module name vars collides with the built-in function
vars(), which for example prevents linting tools from detecting
when vars is used without having been imported, but also makes
it needlessly difficult to use the standard function while also
using the module.
dev: Clean up implementation, remove dead code

Remove unused code and outdated comments. Also simplify / update
various functions to take advantage of features in python 2.6+.
low: cibconfig: Better error when referring to non-existant template
high: cibconfig: Support rules in attribute lists (bnc#865292)

This patch rewrites much of cibconfig to remove the list
intermediary format previously used when parsing. This was
done to enable rule expressions in nvset lists wherever
Pacemaker allows such expressions.

Also fixes a number of issues discovered while implementing
this change, and simplifies some of the CLI syntax:

* Use 'in' and 'spec' instead of 'in_range' and 'date_spec'. The
  old syntax is still allowed and translated into the new form.

* Don't display $id=... unless necessary (there are multiple
  instances on the same level or someone refers to that item by id).

* Fall back to assuming that the pacemaker version is >= 1.1.8
  if version detection fails.

* Fixes issues with handling resource tags