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