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.