Initial commit of user system

This is the initial patch for adding and handling users on channels.

A major refactor of the project is planned, so ATM it's a bit messy.
Setup unit test framework

Unit tests can now be added and run via:

make test

The test framework works via compiling straight in with the .o files
from ./src. Tests are defined in ./test/test.mk, where the ./src/*.c
files as well as the associated ./test/*.c file are speceficed, and all
of that is compiled together with ./test/test.c which includes some
helpful functions for running the framework. the ./test/run_tests.sh
script takes care of running each unit test within valgrind.
Make Travis run unit tests
Small spacing change to ./test/run_tests.sh
Quick fix to ./include/buf.h

A 'ptr' argument to a macro didn't have paren's around it, resulting in
an error if you try to supply it with something like "&buf".
Updating README.md file with more information.