CBQE-2515: Automation Framework for 2i integration tests and basic tests for recovery and index ops

- Basic API for automation of 2i tests
- Basic tests for scan, recovery, index-create, index-drop
- Tests defined for employee dataset
- Place holder classes for Bootstrap and cluster ops tests

Implementation Notes

Base_2i and Tuq: We have reused QueryTests defined by N1QL team since they have an infrastructure that works.
Base_2i is our base class for testing which extends from QueryTests.

QueryDefinitions: Define a query template, index used, groups for defining a query.
Once defined, we can define queries for index create/drop and related queries.

Advantages:
1) Groups help us tag the query definitions such as (using simple/composite indexes, range scan in indexes, type of data set used
i.e. whether we have group by/order by etc within the query.
This helps grouping a set of query definitions when running via test case.
2) We do not need to write explicit tests per query type - leading to code reduction, plus giving structure to our testing.
3) Query definitions are designed to work against any particular bucket, depends on their usability.
4) Can define query definitions for different data sets (employee as an example for this review)

Example: See basicindexops and recovery tests

Before, In_between, After: We have defined a set of query-based-events such as {Create index, Run Query based on index, Drop Index}
and subsets of these can be occur before, in_between and after a target-event.
This target-event can be an recovery operation in 2i, rebalance in cluster, bucket operation such as upserts.
By giving the ability to alter these basic operations of querying during our target events,
we can define different scenarios for testing per event.
This helps in code reduction and giving more structure to our tests where events occur during same time-interval.

Example: See Recovery tests

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