Resource addListener / removeListener with Await test support class (GSIP 106)

Resource API for events supporting both file and directory change notification.
FileWatcher has been changed to no longer extend Thread, instead it uses a ResourceListener to wait for file changes.
Test support class Await introduced to facilitate testing for concurrent notification.

This pull request is part of http://geoserver.org/display/GEOS/GSIP+106+-+Managed+File+API