Windows doesn't like mapping files into memory

There is no way to close the mapping without calling explicitly the GC
after having nulled all references. So let's use a ByteBuffer instead.
Make path separator system dependent

This is part of windows compatibility in #61
Handle process timeout in scala

`timeout` command under windows does not do what we expected it to do.
Handling it in scala should make the code much more portable.
This is part of ticket #61.
[Fix #53] Same user cannot be connected twice

The mobwrite peerid is now random and it is also send in the command join and part.
Merge branch mobwrite-peerid

This is the base work to rely on to fix issue #53.
[fix #53] Peers join resource, not username

when need to track individual peers (meaning editors) not user, so that
the same user can be connected twice to a paper to edit it.
Improve edit user, paper and compiler

Use the JSON-Patch library to generate JSON Patch file.
Fix synctex parser

Support negative distance.
Merge pull request #76 from tdurieux/fix-synctex-parser

Fix synctex parser
Merge pull request #75 from tdurieux/improve_edit

Improve edit user, paper and compiler
Merge pull request #73 from satabin/fix-53

Fix #53 Same Paper Cannot Be Connected Twice
Fix error status
Merge pull request #74 from gnieh/wip-windows-integration

Wip windows integration
Correctly send join message

Even if no users where on this resource, at least the newly connected
one gets notified of it join. It can be useful for managing resources in
the resource actor.
Code improvements

While debuggin the problem with the join message I had to add some
logging here and there, and I fixed some code style issues that led to
timeouts under certain circumstances. It would be a pity to throw
everything away, so I include it here. The code should be more robust
now.
Merge pull request #77 from satabin/wip-correct-join

Fix join message
[imp #78] Always retrieve broadcast message

Instead of sending pending messages when the user sends a specific message,
always send them back with any synchronization session.
Do not delete peer when retrieving messages

Its list of pending messages is simply reset but the peer itself is not
removed from the list of connected peers.
Merge pull request #79 from chemicalstorm/fix-78

[imp #78] Always retrieve broadcast message
Replace malformed input character and go on

if input is malformed in a log file, just replace the malformed
character with the default codec replacer and continue decoding instead
of failing.