Created a new interface Config in PriamConfiguration so the underline values are swappable
merge
Merge branch 'master' into PriamPropertiesSwap
fix git merge that got checkedin
Merge pull request #231 from jasobrown/1.1

switch from internal Throttle to guava's RateLimiter. #229

reviewed by @timiblossom
merge latest changes from upstream
Moved Config to a top level interface and renamed it ConfigSource.
Split most of the default logic out of PropertiesConfig into a new AbstractConfigSource to make impling ConfigSource easier.
moved simpledb logic into a config source
Created a new CompositeConfigSource to delegate to multiple different sources.
Added a PriamConfigSource to replicate the old behavior for default.
Removed ImplementedBy from ConfigSource and put the binding in PriamGuiceModule.
Added null check to all set methods.
Added javadocs for all config sources.
Made properties config source use concurrent map rather than properties internally.
Merge remote-tracking branch 'upstream-1.1/1.1' into 1.1
Inject sources into PriamConfig rather than calling new.
Renamed ConfigSource into IConfigSource.
Put ImplementedBy on IConfigSource so it can be overrided when needed.
Removed unused import statements in PriamGuiceModule.
Fixed a bug with getList in AbstractConfig where it had value == null rather than value != null.
Added new constructor to CompositeConfigSource to use array of config source.
Added new MemoryConfigSource for testing and for extensions to use.
Allow user to override Properties file name in PropertiesConfig for testing.
Filter out empty strings in properties clone for ProperteisConfig.
Write directly to map in SystemProp rather than calling set.
Added first primative tests for configs.
updated properties config source test after change to filter out empty values
Tried to convert ConfigSource into Priam coding conventions.
Added a new test to verify getList returns the write values.
Merge branch 'master' into PriamPropertiesSwap
fixed merge bug where new method getInternodeCompression was calling properties
made PRIAM_PRE prefix public so it can be referenced from SPCS
(so it doesn't need it's own, duplicate constant).
Minor comments fixes elsewhere.
questionable test Ignored
First pass at fixing the s3 client TimeoutConnections problem.
Merge pull request #236 from jasobrown/1.1

First pass at fixing the s3 client TimeoutConnections problem. Incorporating @johaho's fix from https://github.com/Netflix/Priam/pull/220. 

reviewed by @sagarl