Fixed classpath issues for JUnit tests.

Added the servlet-api dependency as 'provided' scope, and changed a few test dependencies to 'test' scope. 'provided' scope means that the dependency is used at compile/test time, but not packaged with the resulting war (as it is "provided" by the webapp container's classpath). 'test' scope means that the dependency is only on the classpath during test time, and is not packaged with the war.