Fix Entities.waitForServiceUp to avoid NPE

- Never return null for repeater’s `until`; always return TRUE or FALSE.
  Otherwise it will NPE.
provide a clean way for management and driver-mapping customizations

* custom launchers can customize launch and management
* new driver-naming strategies can be defined and added
fix warning when deleting files
Added a predicate that can correctly match the type of an application or entity spec.

This fixes issue BROOKLYN-89. The new predicate correctly handles the symbolic-name:version format of the type. The method BrooklynCatalog.loadClassByType(String, Class) is called either with either the symbolic-name or the symbolic-name:version format. It will detect the format it is passed and use the appropriate predicate.
Use Guava Maps/Lists classes rather than TestNG
Clarify LocalManagementContextForTests exception message
This closes #338

* github/pr/338:
  Added a predicate that can correctly match the type of an application or entity spec.
This closes #339

* github/pr/339:
  Clarify LocalManagementContextForTests exception message
  Use Guava Maps/Lists classes rather than TestNG
support config key for osgi cache dir, which now defaults to under mgmt base dir

running in /tmp is not recommended. we attempt as best we can to delete it if it looks transient,
but on `kill -9` there may be junk leftover under osgi/cache/
clean up ServerResource export persistence folder

previously made lots of messy web-persistence-XXX folders under ~/.brooklyn;
now there is a single `tmp` in there
This closes #340
Tidy EntityTransientCopyInternal
BrooklynLauncherTest: use LocalManagementContextForTests

- speeds up the test slightly
DynamicMultiGroup: fix+test removing empty bucket

- Previously gave ConcurrentModificationException when removing,
  iterating over Sets.difference, because that set is a live-view
  rather than a copy.
This closes #336
Configure attribute for storing PropertiesReloadListener for later removal
Document purpose of attribute for reload listener