Added new role gcp to support contrail vgw

Contrail simple gateway (vgw) is used to provide external network connectivity
without any physical router, in test and development environments.

so gcp1 will be act as an edge router for virtual cloud/vagrant environment.

Since vgw cannot advertise its routes to any other system, one have to add route
manually to reach floating IPs.

In order to access default floating IP pool (100.1.0.0/24) from the machine in
side cloud network (say haproxy1), one have to add below route in it.

route add -net 100.1.0.0/24  gw 10.0.0.10 dev eth0

where 10.0.0.10 is gcp1 IP address, eth0 is the machine's interface by which it
connect to the gw, 100.1.0.0/24 is the floating IP network.

I am working on developing rjil::tempest, in which the code to add appropriate
route on tempest machine will be added as it is required for tempest to pass
floating IP tests.

Note:

* There is a race condition between floating IP pool and vgw
 creation. Created a consul kv after creating floating ip pool and blocked vgw
 creation util that kv available.

SPEC tests to be added on which I am working on.
This PR depends on PR #23 on jiocloud_contrail
Added consul service for memcache.

* Memcache should be a central service in order to use it to store tokens and to
  use multiple consoleauths. So adding a consul service for that.
* added better test for memcached.
* Added spec tests
Added memcache caching for nova controllers.

This is required for multiple nova consoleauth nodes.
Fixed issue on configuring private_address on cp nodes

There is a problem on configuring private/public address/interface specifically
on compute nodes from hiera data, as during the deployment, the address of
physical interface will be assigned to vhost0.

Added a function to get various details of first interface which has any IP
assigned out of a provided list, or from interfaces fact. Used this function to
assign vncserver_proxyclient_address to make novnc work.