Add netty submodule and netty based protocol.
Refactor log protocol to use append-only log entries for snapshotting and snapshot replication.
Add buffering of log entries in the file log.
Only clean the buffer for every 100 entries.
Don't store entry pointers for better performance since removeBefore and removeAfter calls should be infrequent.
Properly parse entry indices by delimiter in file log.
Fix double assignment to lastIndex in file log.
Clean and prepend snapshot entries to logs.
Fix bad variable in array copy.
Remove unused takeSnapshot method.
Ensure no-op entries properly increment last applied.
Ensure leader safety by stepping down if two leaders exist in the same term.
Fix merge conflicts.