Findbugs - MALICIOUS_CODE category fixed

## What
Added the category of MALICIOUS_CODE to the FindBugs configuration and as a result, fixed errors reported back. Findings are mostly in the category of "Component exposes internal implementation to the caller", which usually deals with returning mutable objects (primitive/object arrays, dates, etc) to callers. 

## How
In order to address the findings, I did the following:

1. Wrapped immutable collections around `Object[]`, `int[]`, etc 
2. Used `ByteSource` where appropriate for `byte[]`
3. Making sure `DateTime` is used instead of `Date`
4. Marked the `SimpleHttpClient` class to be only internally accessible
5. Guava library added as an explicit dependency to account for the above
6. Updated javadocs and unit tests to reflect changes

Sure, I always favor returning lists over arrays. While it may not be a practical risk (chances of someone trying to mess around with a referenced copy of the array are probably none and that no "serious" damage can be caused), it still could be considered an improvement to remove all malice. 

As you noted though, cant change the return value (otherwise, I would have also changed all "byte[]" returns to a list of something)