I lost track of time/work being done, so a ton has been modified in this
commit. Switching over to using the NIO libraries entirely rather than
the File/NIO hybrid of before. Added mutual authentication to the login
protocol. Cleaned up a lot of nasty class hierarchies and code.