Convert bufferevent unittest to use Catch.

Refactor unittest so that they are implementations and not headers.
This is due to the fact that Catch generated unique numbers for test cases
based on line numbers, placing them inside of headers will lead to weird
errors.
For more details see: https://github.com/philsquared/Catch/issues/225