Refactor buf.h a bit

Removes some macros ('OPEN_FILE', 'OPEN_FIFO', etc.) in favor of
directly using them. It also removes some requirements like names ending
in 'fd', and overal makes using this header more convient.
Refactor channel API and user API

This patch refactors the channel API and user API to hide some of the
functionality that shouldn't have been exposed and clean things up. This
patch also cleans up the User setup as well (Since it's fairly small and
tied to the channel setup).
Refactor daemon and main-loop setup

This patch refactors some of the code in ./src/daemon.c, relocating it
into './src/fircd.c' (Which was created from a renamed ./src/main.c).
./include/fircd.h was deleted.
Fix small typo
Fix memory leak from strings not being freed
Change displayed messages
Value is stored unsigned, change to 2 from -1
Make sure this setting is inherited from global setting
Clean-up configuration code a bit.
Refactor channel organization

This change removes the linked-list node from the channel struct, and
instead has the channel struct get wrapped inside of another struct
containing a node at the network level. The advantage here is that the
organization of the channel's is now at the network level and it results
in cleaner code.
Small name change to "irc_user_node"
Refactoring config setup

This patch refactors the config setup in ./include/config.h and
./src/config.c. Specefically it moves everything config related out of
struct network_cons and into struct config, and cleans up parts of the
code. It also makes the config global over the program, which simplifies
a ton of the code (Before they had to et sent network_cons just to use
config options in it).
Update to travis to possibly fix the GCC issue
Integrate libconfuse
Refactor libconfuse and add was_set option

This patch refactors libconfuse to remove some unneeded options
(DLLEXPORT, __export, etc...), as well as adds a 'was_set' option, which
flags whether or not an option was actually defined and set in the
config file, or if the default was used. Previous this functionality was
acheved via hacking around how libconfuse worked, but this is a
nessisary change to allow for having global defaults that are
overridable on a per-network basis.
Remove libconfuse from travis dependences
Update README.md since we no longer depend on libconfuse
Update ./.gitignore to ignore LEX generated files
Fix seg-fault with network_clear

In network_clear, a linked-list of channels is iterated through to free
them, however the 'tmp' (next) node was always being freed instead of
the current, resulting in a seg fault when 'tmp' became NULL. The fix is
to free the current node instead.