Java 8. Refactored everything.

Cleaned up the codebase and API.
renamed chat example classes. sendToSome.
refactored chat example
fixed bug with sending large files
removed useless header comments
split ByteArray into ByteArrayWriter/Reader

implemented byte array classes using DataOutputStream/DataInputStream
created FileUtils
ServingSocket: sendToFirst. refactored hashFiles.
removed unused open field in ServingSocket
refactored FileUtils

getAllFilesInDirectory - made recursive

saveAs - removed clutter
simplified chat example whoIsOnline()
shutdown heartbeat on sever close
removed heatbeat delay from constructor
cancel previous heartbeat when setting new hearbeat
refactored ServingSocket.hashFiles

created FileUtils.ensureDirExists
created FileUtils md5HashFile
removed check for if client data directory exists on server
chatexample: move call to super.close() up
refactored SocketHandler

logging when message lengths/types are out of range
handleData(): KISS
SocketHandler static constants

changed form
Revert "SocketHandler static constants"

This reverts commit 639b4aca335e4f9b4e5f58ce1a07ff833e239cf1.
SocketHandler static constants
forgot to readFully when refactoring SocketHandler
refactored FlashPolicySocket