CBQE-2479::Testrunner support for node services

We can now add node service type to nodes being added to the cluster.

We have added changes to rest api and RebalanceTask. In RebalanceTask we provide an array of services which will be added per node. These should be in the same sequence as the added nodes.

In addition, we provide support in basetestcase.py with the paramater services_init, defined as follows:
1) If absent, services_init = None, which makes it consider default value for services per sherlock. Also this helps stay backward compatible
2) If it has 1 value (e.g. services_init=kv i.e. all nodes which will be added to the cluster initially will have kv service only).
3) Multiple values: services_init=<":" seperated service>-<":" seperated service>. Example: services_init=kv-kv:moxi-moxi:kv-n1ql, for 3 nodes being added to cluster we have services kv,"kv,moxi","moxi,n1ql"

Based on this implementation we can initialize our test cluster with varying services. Also, use the rest api and rebalance task to add more nodes when needed.

Change-Id: I4b98d1d2f8438cb15285d81f2318c4733df7c849
Reviewed-on: http://review.couchbase.org/43282
Tested-by: buildbot <build@couchbase.com>
Reviewed-by: Parag Agarwal <agarwal.parag@gmail.com>
Tested-by: Parag Agarwal <agarwal.parag@gmail.com>