Moved role constraints into model and removed edit deployment

(cherry picked from commit 04abeabde6a64fc0c77850c3d892544805eee6f0)
Merge pull request #137 from vuntz/release/roxy/master

Moved role constraints into model and removed edit deployment
Removed the single assignment block from constraints
Merge pull request #138 from tboerger/feature/roxy/fix-constraints

Removed the single assignment block from constraints
Set database password from crowbar, not cookbook

We also change the database name, but it's only used for sessions, so
it's no big deal.
Fix links on node page

They were always using http (even when ssl is enabled) and "OpenStack
Dashboard" is a better name.
Implement HA support through haproxy
Be stronger than apache2 cookbook and enforce the ports we want to use

The apache2 cookbook is kind of broken in how it defines ports to use in
config files, so we need to override this behavior.
Configure horizon to use memcached from all nodes in the cluster
Fix to work when keystone is behind haproxy
Use get_instance helper
HA: also make haproxy listen on port 80 for redirecting to https
We don't use Opscode::OpenSSL::Password anymore
Use CrowbarPacemakerHelper.haproxy_servers_for_service helper
Merge pull request #135 from vuntz/haproxy

HA with HAProxy
Use PacemakerServiceObject.cluster_vhostname_from_element

We shouldn't compute the hostname of haproxy ourselves, so instead use
the new helpe for this. This will also fix a bug where we need to
substitute _ with -.
Use helper from database cookbook to get database IP address

This way we're ready for when HA will be used for database.
Fix regression with memcache possibly listening on wrong address

With the HA support in commit a541099b, we lost the code ensuring that
memcache only listens where it should (when HA is used; it kept working
fine for non-HA).
Merge pull request #141 from vuntz/cluster-hostname

Fix hostname of cluster to use - instead of _
Merge pull request #142 from vuntz/db-ha

Use helper from database cookbook to get database IP address