utils for encoding base64 data strings
allow brooklyn.properties to be used in setup.script.vars
feed de-duplication

prevents problems, especially on rebind, where if the same feed is added multiple times, we get multiple running instances.
works primarily by using unique tags which are now inferred for feeds.
these can be explicitly set, if the default de-dupe behaviour is not right,
but in most cases it will be right, using a combo of the source and the sensor it writes to.
(since most sensors will only be written to by one source this is more than enough!)
also adds lots of equals and hashcodes, as this is used secondarily when there is no unique tag
(but now there always is so much of this is not needed)
de-dupes mark two - persist uniqueTag

previously uniqueTag was not being persisted so we were getting duplication in some situations,
or were relying on the equality check; now we persist this, and we say something is apparently
equal even if it doesn't have the unique tag (and we transfer the tag across).

note that rebinded adjuncts are added *after* those done in the entity itself (via the rebind() call there);
this seems surprising, but should be okay as ideally we shouldn't be adding new adjuncts at all.
(but we might need some special logic in order to put in place "change my adjuncts on rebind" behaviour at an entity.)
some base64 / data uri scheme tidy up as per code review
This closes #352
Mark tests in NetworkingUtilsTest as integration

- For tests that open a port, mark them as integration because 
  failing on apache jenkins.
This closes #360
Fix BrooklynMementoPersisterToMultiFileTest.tearDown

- stop management context before deleting mementoDir, otherwise
  the management context can be reading/writing to dir at same time
  as we are trying to delete its contents.
This closes #361
Adds documentation for debugging a remote Brooklyn instance
This closes #354
Use shared PortForwardManager, and improved interface

- Improve the PortForwardManager interface.
  Deprecate the old code.
- Change PortForwardManager to be a location.
- Add PortForwardManagerLoationResolver for retrieving shared instance.
- Support configuring the starting port number for PortForwardManager.
PortForwardManager tests and fixes:

- Add tests for PortForwardManager
- Deprecate isClient()
- AcquirePort uses the first port in range as well (i.e. use
  `getAndIncrement()` rather than `incrementAndGet()`)
- Fix forgetPortMappings(Location)
PortForwardManager: incorporate review comments
No JMX agent required for JMX_RMI mode

Signed-off-by: @duncangrant
PortForwardManager: incorporate review comments

- for synchronisation
This closes #353
Changed solr entity to use java interfaces

Added main uri attribute to entity
Configured service up check to work with docker