New agent registration

Only create groups if the user says to, it seems weird to have agents creating groups by default

Create a simple HostInterface class and allow users to pass an array of them in (default value is still preserved)

Fixes API call failures (bad parameter structure)

Removes port_open? check (can definitely add this back in there was just some complexity with getting the connection info to the check)