Massive re-work, please read description.

There’s been a lot of changes…
1.) Messages are symmetrically encrypted now, RSA keys are used to
encrypt and AES key that encrypts the data (See SessionKey.java)
2.)Packets are now sent to nodes, containing authentication, messages
and SessionKey.
3.) Messages now contain a SessionKey.
4.) TrustStore added. This is used to store trusted CA’s for SSL and
trusted certificates, before this we were trusting our own certificate
for the connection….
5.) Authentication will be tweaked, but it should be working as it is.
6.) General cleanup, some crazy indentation, imports and whitespace was
going on before.
7.) Removed loads of methods requiring a char[] password, no longer
needed (Use User.getPassword() or Server.getPassword()).
8.) GUI had some really old references to crypto classes, these have
been updated and cleaned up.
9.) SSL doesn’t use Certificate Authorities, this is pretty bad but it
works for now until we can get Node certificates upon registration to
add to the TrustStore.
10.) Node setup text has been corrected.
11.) In general System.out.println descriptions have been improved or
removed if not needed.
11.) Node read ID from file has been disabled, this needs to be fixed
and re-enabled.
12.) For some reason, on the main node side a lot of the server
exemptions were caught but not thrown. Some have been fixed, and the
associated EOFExceptions fixed.
See previous commit

See previous commit