Changes for flow message processing optimizations in collector:
1. Rewrite FlowTableInsert to traverse the flow message XML
  tree only once and extract the needed fields into an
  array. Use the array to populate the vectors needed to
  populate the FlowRecordTable and the flow index tables.
2. Use the DbDataValueType type to encode the value into
  string rather than using the column family name to determine
  the type. This avoid 2 map lookups per field encoded.
  Add a boost::blank as the first element of DbDataValueType
  variant instead of std::string to determine if the variant
  is populated or not.
3. Add a mock_generator in C++ which sends flow messages and
  can be used to scale test vizd.
4. Use pugixml to decode the SandeshHeader and the sandesh
  message in SandeshServer. Abstract out SandeshMessage
  creation and parsing using SandeshMessageBuilder, change
  vizd to use SandeshMessage.

With the above changes, we are able to increase vizd flow sandesh message
receive performance for 1 generator from around 1.5K msg/sec to
around 3.5K msg/sec using vizd built using compiler optimizations enabled -03
on single box setup - a6s23 - 4 core i3.
Merge pull request #23 from Juniper/rajreddy_sandesh_log

add / to xsl file to make it absolute. for introspect to work on IE
Merge pull request #24 from Juniper/meghb_flow

Changes for flow message processing optimizations in collector:
Do not generate install targets when scons is invoked as scons <directory>
Merge pull request #25 from Juniper/protect_install_target

Do not generate install targets when scons is invoked as scons <dir>
We have some vizd cores in the State Machine Stats Update code.
On these machines, redis was down and this was causing continuous
reconnection of generators.
It seems that the generator state machines were deleted (by the lifetime actor task)
while sandesh receive was being processed (by the sandesh state machine task)

The solution is to set task policies and make these tasks exclusive.
Merge pull request #26 from Juniper/anishm_lifetime

We have some vizd cores in the State Machine Stats Update code.
1. Add watermarks for SandeshStateMachine work queue to prevent
   vizd running out of memory
2. Scope SandeshRole enum to prevent clash with classes Generator
   and Collector in vizd
Merge pull request #28 from Juniper/meghb_cdb_scale1

1. Add watermarks for SandeshStateMachine work queue to prevent
Making the Sandesh Client's Hold Timer run with the same task/instance as the rest of the state machine
1) Fix exception on setting log level/category in introspect
2) Set appropriate log level on python logger when log level is set
In Sandesh client state-machine, upon receiving EvConnectTimerExpired event in CONNECT state, call DiscUpdate() to swap the primary and secondary collector and move to IDLE state.
Merge pull request #31 from Juniper/pr_2396

Fix for #2396
After a recent change, Sandesh messages are encoded by sandesh code, but decoded by pugixml. Since pugixml does not expect escaping of quotes, we need to remove it in sandesh
Merge pull request #32 from Juniper/anishm_quot

Anishm quot
make TcpServer::Initialize fn a bool so the clients decide what to do on failure. Sandesh Server exits the appln if Init fails