Cherry-pick from pveentjer: LocalManagementContext tracking

The LocalManagementContext now tracks all LocalManagementContext
instances and stores them in a static collection. When a
LocalManagementContext is terminated, it will automatically be removed
from this collection. Also a static method TerminateAll is added to
have the ability to kill all active LocalManagementContext.

This is very useful in tests environments where you want to be able to
cleanup your ManagementContext without going through the hassle of
tracking them since this can become very nasty of the ManagementContext
is created on the fly.

This getAllinstances and terminateAll approach is inspired by the way
it is done in Hazelcast.
Cherry-pick from pveentjer: Added the LocalManagementContext.terminateAll to all tests in core
Cherry-pick from pveentjer: More work on fixing the tests + some cleanup
Tests teardown their own ManagementContext
Adds testng BrooklynLeakListener

- logs + terminates ManagementContext instances left behind