findbugs - making sure immutable state is returned to caller

such that internal implementation is not exposed to adversaries.
explicitly declaring guava dependency
findbugs - making sure immutable state is returned to caller
making sure immutable collections are returned.

modified tests to use the interface type rather than the concrete.
making sure immutable collections are returned.
fixed unit tests
fixed null check
removed unused imports
added null checks and @NotNull
Merge branch 'master' into findbugs-expose-internal-impl

Conflicts:
	pom.xml
fixed cs issues
Merge pull request #794 from Unicon/findbugs-expose-internal-impl

Findbugs - MALICIOUS_CODE category fixed