Add philsquared/Catch as a submodule
Add net/buffer.hpp and its unit tests

The file net/buffer.hpp contains an improved version of the buffering
code that I recently removed from IghtConnection (see #17).

The filename extension is .hpp rather than .h, to respect the principle
of the least surprise. Since most libight modules are C++ only, it is
better to communicate that clearly to other programmers.

(Already existing modules have the .h extension, because libneubot
mixed C and C++ code. This will change in the future.)

The unit test for this new module is written using Catch, which is
my preferred framework for unit testing (see #9).

To simplify testing, the specific tests for this module are inside a
C++ header file (`test/net/buffer_tests.hpp`) and there is a single C++
source file (`test/tests.cpp`) that pulls such header (and, in the
future, other headers including the tests of other modules).
buffer.hpp: more != NULL checks and tests
buffer_tests.hpp: add tests for insertion and extraction

Use common/libevent.h's IghtEvbuffer, so we don't need to care
about freeing resources when we leave the context.
buffer_tests.hpp: use IghtEvbuffer rather than evbuffer

This way, resources are automatically cleanup up when we leave
the current context, and we avoid leaks.
Merge branch 'add-buffer'

* add-buffer:
  buffer_tests.hpp: use IghtEvbuffer rather than evbuffer
  buffer_tests.hpp: add tests for insertion and extraction
  buffer.hpp: more != NULL checks and tests
  Add net/buffer.hpp and its unit tests
  Add philsquared/Catch as a submodule