emit thread, config file, unit tests

The changes should have no effect on the people who are currently using this, if they do not change anything in their code. 

I added the followings:

- an auto-emit feature, disabled by default. the way to use this is through one of the added constructors, e.g.:
Client(String programId, boolean autoStatEmit, boolean clearStatAfterEmit, int statEmitInterval). 
the old constructor where we only pass the programId will have this feature disabled. 

- config file to read mondemand addresses/port from. e.g.:
client.addTransportsFromDefaultConfigFile() or client.addTransportsFromConfigFile(config_file)

- a timer stat where we could specify extra attributes to be emitted for it. e.g.:
client.incrementTimer("key", some_value, TimerStatTrackType.MIN | TimerStatTrackType.MAX | TimerStatTrackType.MIN.PCTL_98 
this will emit min,max and 98 percentile of the values added to the counter since the last emission of the counter. 

I also added unit tests for the added/modified codes. 
In the case where there were no samples, would we want to completely omit the calculated timer stats, or should they still be set in the event with values of 0?  I thought the rrd grapher gets grumpy about missing data points.