Fix for #2267
During UVE sync, the UVE object is initialized with the sandesh_global instance during creation.
If the sandesh client doesn't call init_generator() on the sandesh_global instance, then the sandesh_global
instance will have empty source, node_type, module and instance_id. Therefore, UVE object initialized with
the sandesh_global instance will be sent with empty source, node_type, module and instance_id in the sandesh header.
This results in improper addition/updation/deletion of UVEs in redis.
In sync_uve(), pass sandesh_instance while creating UVE object.
Patch in:
commit 69c88b64701caaac414bbc753061dfd86094c518
Author: Megh Bhatt <meghb@juniper.net>
Date:   Thu Dec 19 15:46:39 2013 -0800

    1. Fix potential memory corruption caused by accessing and modifying
       last_event in SandeshStateMachine and SandeshClientSM from
       concurrent threads by using the state machine mutex.
    2. Consolidate state machine event statistics into a common
       structure - SandeshEventStatistics - sandesh_statistics.h
       and let both SandeshStateMachine and SandeshClientSM use it.
Patch in:
commit 6f425af08f02ed6c6bf676c25864ed0f0d3554ad
Author: Megh Bhatt <meghb@juniper.net>
Date:   Tue Jan 21 14:11:39 2014 -0800

    1. Allow generators to not start HTTP introspect by passing
       -1 as HTTP port in init_generator pysandesh
    2. Add UveInterVnStats, InterVnStats, virutalmachine_list to
       UveVirtualNetworkAgentTrace message in mock generator
    3. Allow user to specify number of instances per generator
       and number of virtual networks
Logger name should be the generator id (source, module, node type,
instance id) rather than just the module
enable logging to file when sandesh connection is not established
syslog fields are optional
Enable code coverage in sandesh cpp library
Do not log from static variable constuctor, as the Logger would not have been initialized yet
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.
add / to xsl file to make it absolute. for introspect to work on IE
Added FreeBSD specific macros and includes for kernel build.
TO FIX: Temporarly defininfg HAVE_STAT_SYS_H to make this compilable on FreeBSD.