WIP - PLEASE DO NOT MERGE WITH UPSTREAM

Refactoring Messenger to provide nicer interface

This refactor also includes:
- some mild trailing whitespace removal
- removing of friend status constants and replacing with a Friend_status
  enum
- changing Messenger_test.c to match the new interface provided by
  Messenger.h/.c

NB: This refactor tries to avoid changing any logic, in theory it
should'nt have introduced many errors