!act #3581 Add Tcp.CompoundWrite, some cleanup

Moves `def ack: Event` and `def wantsAck: Boolean` from the `Tcp.WriteCommand` type down to the newly introduced `Tcp.CompactWriteCommand`, which breaks existing code depending on these.
Additionally `Tcp.WriteCommand` now has a few additional methods (`+:`, `++:`, prepend) and a companion object.
=doc #3581 Add "Writing to a connection" section to IO docs
!per #3631 Snapshotting

- capture and save snapshots of processor state
- start processor recovery from saved snapshots
- snapshot storage on local filesystem
- snapshot store completely isolated from journal
- LevelDB journal modularized (and completely re-rwritten)
- In-memory journal removed
Merge pull request #1747 from eligosource/wip-3631-snapshotting-krasserm

!per #3631 Snapshotting
Merge pull request #1709 from spray/wip-3581-io-compound-write

!act #3581 Add Tcp.CompoundWrite, some cleanup
Merge remote-tracking branch: upstream/master