Handle event ACK on the client.
Fix the server-side event buffer.

Apart from simplifying the code, this fixes a confusion between client
id and event id : contrast
event_cache_.erase(it->first);
with
event_cache_[client_id].erase(it);
It also fixes dropping all events in a packet if one event ID was
already processed.
Add the correct namespace for the Direction enum.
Clarify log message.
The server can now send ACK in response to event packets.

Note that if the ACK is lost, no more ACK will be sent until the client
sends a new event (with a new ID).
Merge pull request #36 from Neki/topic/bf_add_event_ack

Add events acknowledge.
Fix event constructors : add constructors without ID, set timestamp to 32 bits.
Merge pull request #39 from Neki/topic/bf_api_improvements

API improvements for events.
Fix GTest library location on Windows.
On Windows, use the correct version of the C++ runtime.
Add basic compiler flags on Windows.

Add warnings, optimization settings, and the NOMINMAX define (required
for a Qt header to compile on Windows).
Reduce warnings to level 3 on Windows.
Force MSVC to use static version of the CRT.

Shloud fix issues with the linker with GTest dependency on the static
CRT when built as a static library.
Fix downloading GTest occuring too late in the build process on Windows.