Fix 'used undeclared' dependencies as reported by dependency:analyze

 * several dependencies were directly used and not specified in the pom.
   (we were relying on them to be transitively accessible, which is not
   ideal). Fixed all of them as reporterd by dependency:analyze
Remove commons-httpclient as it's not used

 * there were basically two httpclient implementations:
   commons-httpclient:commons-httpclient and
   org.apache.httpcomponents:httpclient. The commons one
   is quite old and for example the Wagon depends on APIs
   introduced later. Those APIs are in the newer version
   of org.apache*:httpclient.
Remove logback-core as it's brought by logback-classic

 * we don't depend on logback-core directly so there is no
   need to explicitely declare it. The logback-classic will
   bring it transitively.
Upgrade maven-surefire-plugin from 2.14.1 to 2.17
Upgrade Spring from 3.2.2 to 4.0.4

 * even though it's a major version update, no
   incomtabilities were encountered. The unit tests
   and also full validator run over real-world repo
   finished successfully.

 * versions from XSD declarations in Spring configs were
   also removed. The XSDs should use the generic name, like
   `spring-beans.xsd` and the concrete version is then
   specified inside the Spring jars, in file
   META-INF/spring.schemas. This way we don't need to
   update the xml files with every Spring upgrade as
   the new versions will be automatically picked up from the
   updated jars.
Upgrade slf4j-api and logback-classic

 * slf4j-api from 1.7.5 to 1.7.6
 * logback-classic from 1.0.12 to 1.1.2
Upgrade Groovy from 2.1.6 to 2.3.0
Upgrade Guava from 14.0.1 to 17.0
Merge pull request #26 from psiroky/pom-clean-up

Pom clean up + dependency upgrades