Fix a bug in linear_buffer

The callback functions `on_async_read` and `on_async_write` of
`linear_buffer` class were wrongly updating the state of the object. In
this context, and async read must increment the *write* index, and
async write must increment the *read* index. The code was doing the other
way around, causing the buffer not to work when used for async operations.
Move libflightvars source files out of src/module

Of course, such files should go into src/lib.
Add a async_tcp_client class

The last missing piece of liboac network: an async TCP client, implemented
in this change. It includes the corresponding tests.

BTW, the network tests are actually integration tests, not unit test. That
has been reflected in the filename and the CMakeLists.txt file.
Add support for future-based async IO

New `read()` and `write()` functions have been added to
`async_tcp_connection` class. These new functions, rather than accepting a
handler to be invoked when the IO operation is done, return a
`std::future<std::size_t>` instance representing the operation. This gives
the opportunity to the caller to wait for the result if needed.

In addition, hostname and port value types have been replaced from
`std::string` and `std::uint16_t` to their typedefs named
`network::hostname` and `network::tcp_port`, respectively.
Move subscription utils to libflightvars

They were compiled as part of FlightVars module, but they are actually
needed in FV client, and likely in other parts of the code.
More precise exceptions in future-based async IO

So far, any Boost ASIO error was returned in future-based operations as a
`boost_asio_system_error`. That's hard for detecting more precise errors
like EOF.

This change consists in checking what's the actual Boost system error and
converts it into the precise exception type it represents in OACSD.
Add a virtual destructor to `logger_component`

Following the good practices, of course ;-)