Convert EffectorConcatenateTest from groovy to java

- So can actually debug properly in IDE, after
  test failed once in jenkins. Suspect there's
  a race in the test code...
Simplify EffectorConcatenateTest

- Use latches rather than notifyAll/wait, to avoid bugs on
  spurious wake-ups
- Simplify test to make it a lot easier to understand
add an SSH_SCRIPT_HEADER config flag, to change the initial commands used in ssh scripts;
also put stronger typing (config keys) around use of ssh flags,
and expose them through entity config (and brooklyn.properties) as well as through properties on the location (or explicit flags in an individual call in the entity)
Move sshj to brooklyn.util.internal.ssh.sshj

- Also move SshTool to brooklyn.util.internal.ssh
  (from brooklyn.util.internal)
- Extract super-class for SshjTool test, ready for other SshTool impls
SshTool impl that doing system calls to ssh/scp

- workaround for Tectia: if connecting to a Tectia server,
  the sshj doesn't work (see https://github.com/shikhar/sshj/issues/54)
added integration test for script header, and fixed things so it works
Merge remote-tracking branch 'aledsage/feature/ssh-cli-based-impl' into fix/477-source-bashrc

Conflicts in renamed/javafied test core/src/test/java/brooklyn/util/internal/ssh/SshjToolIntegrationTest, and
mods to SshjTool to use flags.

Have introduced an SshAbstractTool though still to do is: move common code from Sshj/Cli Tools, and tests that config on entities gets applied to ssh (e.g. headers)
pull many methods and fields up from Ssh{j,Cli}Tool to SshAbstractTool. fixes problems where SshCliTool ignores some config keys e.g. scriptHeader.
fix for error where data is lost running SshCli, and best-effort attempt to mimic exception when cannot connect.  SshCli integration tests passing.
SshTool impl is now specified by a config key in ConfigKeys (TOOL_CLASS).
test for that, and for defining script header as a config key on the entity. both working.
only thing left is, i'm not sure if ssh confg set in brooklyn.properties gets picked up.
look in management config (ie brooklyn.properties) for ssh propertis
Merge pull request #478 from ahgittin/fix/477-source-bashrc

fix #477 source bashrc and #476 intermittent tectia failures
bumped xstrean version to have brooklyn compiled with java7
ssh-cli-tool: incorporate review comments

- fix SshMachineLocation/SshDriver so that ssh properties always set
- expose sshExecutable and scpExecutable config
- beginnings of cleanup
Merge pull request #481 from aledsage/tidy/ssh-cli-based-impl

ssh-cli-tool: incorporate review comments
ssh tool cleanup

- Improve method names/signatures in SshTool; deprecate old ones
- Remove some code duplication
- Add test for ssh-key with passphrase
- SshjTool creates temp file for scp'ing, when doesn't know
  size of InputStream
Merge pull request #479 from andreaturli/jdk7

bumped xstrean version to have brooklyn compiled with java7
Merge pull request #474 from aledsage/fix/EffectorConcatenateTest

Fix/effector concatenate test
Use ConfigToAttributes, deprecating ConfigSensorAdapter
Merge pull request #482 from aledsage/tidy/ssh-tool

ssh tool cleanup