First pass for router v2 implementation. The init version of router v2 is done by
Jun Xiao, polished by Anfernee with a couple of bug fixes and enhancement.

router v2 decouples control and data path to some extent, it's a logic router
including both nginx and uls (upstream location server) parts.

uls (aka control plane) is based on legacy router:
- all communications with nats are kept the same as before
- client facing interface (actually connected to nginx) is simplified to
  handle the location query/stats update from nginx only.
- the original app facing interface is totally removed.

nginx (aka data plane)
- package lua in nginx so most functionalities can be implemented with it.
- for each request, nginx will generate a subrequest (to fit in nginx
  single thread event model) which carries location query/stats info to uls,
  the response of the subrequest will return backend addr and also an
  opaque tags (only known by uls), and the corresponding main request will
  also be awaked and routed to the backend server, when a response from backend
  is returned back, the counter associated with the particular opaque tags
  will be incremented accoring to the response code. The next incoming
  request will always help to carry not-synced stats to uls along with
  its location query.
- sticky session and trace header are also implemented here,
  also their key related config are moved to nginx part.

testing
- "rake spec" will only test uls, while "rake test" will run both unit test and
  integration test with nginx
- integration test requires nginx with lua module installed running

Change-Id: I9b25b24c449b0421754e541ab5ba60a00c551da9
Add ci-reporter task to generate test reports in junit xml format

Change-Id: Idd2c7cd9c0fc44aa3786d7e2f6aa140c1102a8ae
Make router ULS server a sinatra app. Remove client_connections from varz.
Remove keep-alive from nginx's subrequest to ULS.

Change-Id: I89a3b6a59ffba37d25f7f238cbec5ad7793645f8
Add healthz authentication header back for http-monitor

Change-Id: I2c3759d96fa99872d4916e91c5f7764a3f9dc402
Fix nginx config in dev_setup to support router trace

Change-Id: I165efebd84e0d066ea70c14f8caeddca4f56c42b
Merge branch 'master' into router_v2_in_gerrit

Conflicts:
	cloud_controller/Rakefile
	dev_setup/cookbooks/nginx/templates/default/ubuntu-nginx.conf.erb
	router/Gemfile.lock

Change-Id: I7cb5e2b65c21926e9875f613db103a026d20125a
fix nginx false shutdown error in dev_setup

Change-Id: If2d80fb9a5e41ab681df5063323ce3e955cf2489
Create nginx init.d script for dev_setup

Change-Id: Ibe5f43e5b33df05f5770f1eb732669ed4b2142a2
Merge branch 'master' into router_v2

Change-Id: I4c8890eab07afbb2fe28b42cda986cd30ed7369a
update gemfile.lock and cached gems for routerv2

Change-Id: I6d93c3c3addf0ed0f91e9fa8918916cc428dfba0
Fix sticky session decode failure issue. Refactor, with meaningful variable names.

Change-Id: Ic5438b6fb3ff2ef4d1d3e632c9cb4ee78b959d61
Use ULS to generate/decrypt sticky session, to be backward compatible with original router

Change-Id: I7d985e61260ba44398c1b88177d34afad15bc790
Refactor router v2. Move lua module code into router directory. Remove unused plugins from nginx.

Change-Id: Ia047aaa80a45a3a55e726fe7ef17d45edc3ac516
correct mongorestore path

Change-Id: I8feb1149a02d01ba6d068e8afd63b5168f1ea71b
Clean up nginx.conf. Move more logics from config file to uls.lua.

Change-Id: Ia97b4a468c03c44e4b1a22c8502a7cbceedbd307
Fix router v2 bug, trace header should not be included when trace key is wrong.
Update unit test to cover this case, and modify the parameter to speed up unit test.

Change-Id: I3980ff15169c47165eadf02db1614a44a8b9a159
Fix typo in spec

Change-Id: Ie66ba5aadc37949800f56ff647a2005b2155b574
Add rabbitmq service support in dev_setup

Change-Id: I17748d0a102aa3d6e889209ac586ce78c327a058
Merge "Add rabbitmq service support in dev_setup" into services-r9
add vblob in bin/services and cloud_controller.yml

Change-Id: Ia942ee9a1a4480ee9f19250707785718e93a93be