Low: ui_cluster: Cluster sublevel implementation using Ansible

Beginning of a test implementation of the cluster
sublevel using ansible, a deployment tool with few
dependencies and a Python API.
Dev: cluster: Use crmadmin to get list of nodes
Low: cluster: Catch OSError when crmadmin fails
Low: ui_cluster: More work on cluster sublevel
Dev: cluster: Experimenting with executing playbooks
Dev: Add hahealth and rpmcheck ansible modules
Dev: playbooks: Add work-in-progress playbooks for the cluster init and doctor commands
Low: cluster: Error if local node is not in init nodelist
Low: library: Add crm module
Dev: cluster: More work on init/doctor
Low: cluster: Always enable corosync_votequorum
Low: cluster: Playbook for cluster init
Low: ui_cluster: New direction for cluster sublevel
Low: main: Fix broken --display option
Low: ui_cluster: Add cluster wait command
Low: ui_cluster: Revised playbooks
Dev: Use NotImplementedError

NotImplemented is a constant. The exception name is
NotImplementedError.
Dev: utils: Switch to ordereddict.odict

Use a single odict implementation in all
modules.
Low: utils: Fix regex path strings
Dev: utils: Escape regexes correctly