Make Threads.withContextClassLoader more resilient to failure by restoring the previous ClassLoader properly
Implement XPath lib with XPath standard API

This commit rewrites the XPath lib to use the standard API instead of
Jaxen.
It however introduces a small dependency to org.apache.ws.commons.util
to have a simple implementation of NamespaceContext. We could avoid the
dependency by copying their implementation.
Merge pull request #398 from mchv/xpath

Implement XPath lib with XPath standard API
Fix discovery of the `jnotify` jar.
Properly fixes the JNotify discovery (previous one was broken)
few fixes
few fixes
fix scaladoc
adding optional require.js support

how to enable require.js support:
- create a subfolder called `rjs`(can be overwritten via `requireSubFolder` setting) in app/assets/javascripts/
- add require.js managed js files to this folder
- add  `<script type="text/javascript" data-main="public/javascripts/rjs/main" src="@controllers.routes.Assets.at("javascripts/require.js")"></script>` to your template where data-main is the js file name in question

things to know:
- require.js is bundled with play, so users do not need to add it manually
- in dev mode dependencies resolved client side, closure compiler, without commonJS support, is run through the scripts for sanity check but no files are modified
- in prod mode: stage, dist and start commands were changed to
run require.js' optimizer for each file in app/assets/javascripts/rjs this means files will be minified and combined for performance. Since the files (and references) will be the same (just optimized), no extra changes are necessary to switch between dev and prod mode
- by default a rhino based optimizer is used, the native, node version can be configured for performance via `requireNativePath` setting
- if app/assets/javascripts/rjs is missing, no extra processing takes place, so the default behavior will be used
- right now this is enabled only for javascript but we are looking into using it for css as well
Merge pull request #385 from juretta/threads-with-context-classloader

Make Threads.withContextClassLoader more resilient to failure
upgrading play to sbt 0.12.0

As the first step in our quest to move to scala 2.10, play is now upgraded  to sbt 0.12.0.

Things to know:
- play is on scala 2.9.2 now
- sbt plugins were updated to 0.12.0 (sbt-idea will be updated to 1.1 final in a separate changeset)
- tests are executed in fork by default (so no more permgen issues!)
- forking has some minor overhead but not much
- forking required adding some extra clean up tasks to test helpers (both java and scala) in order to avoid test hanging
- Promise's actor system and WS' threads now can be cleaned up properly during test execution
- forking can be turned off via the standard `fork in Test:=false` setting
- if you experience hanging while running tests, make sure all your threads are shut down
- resident compiler is still turned off due to issues with empty packages,
this feature will be enabled once we are on scala 2.10 M6 (with the fix for SI-5939)
Add a Date header to 304 responses

This change adds a Date header to 304 responses and fixes an issue with CloudFront getting stuck in a RefreshHit cycle after hitting the TTL.

More information about why the Date header is required on 304 responses can be found at:
http://stackoverflow.com/questions/1587667/should-http-304-not-modified-responses-contain-cache-control-headers

Also, since a Date header should always be returned (not just for requests that have a Last-Modified header) the Date header is now set when a 200 response is constructed.

The FunctionalSpec has been added to test for the Date header on a 304 response.
fix Promise.system's visibility that was incorrectly changed to public during 0.12.0 upgrade
fix console reader issue after sbt 0.12 update
upgrade sbt-idea to 1.1.0 final