[add] support dynamic lircrc updates

-re-read modified lircrc config file on-the-fly to ensure any relevent
changes to commands are used without requiring a restart

-this implementation is slightly flawed due to its use of the internal
lirc socket/signal mechanism for asyncronous checking of the config
file's stat 'mtime'. it requires a lirc signal to perform the check and
potentially re-read the config file. when it does re-read the file, the
fractions of seconds it takes to do so are enough to make the lirc
command timeout*. so following a config file change that you want
reflected in the currently running process, send a dummy signal (e.g.
irsend SIMULATE "0000000000000000 00 DUMMY remote-control-name") to lirc
as a work around. failing that, just be aware that the next lirc signal
will be consumed silently

-the correct way to perform this config update is to wrap the current
lirc_readnext loop in a custom socket/signal routine. performing the
check whenever socket i/o occurs, and then calling using lirc_readnext
loop to iterate through any/all codes waiting in the socket

*it is the extended time between reading the code from the socket
(lirc_readnext), and requesting the lirc daemon process the command and
return an action (lirc_code2char -> lirc_send_command) that appears to
cause the lirc timeout

-in spite of the lirc boiler plate code used, i don't think that lirc
failing to process a command should be terminal for the application,
thus this has been changed

-added lircrcfile option to the options struct
[sup] whitespace changes only
[fix] help option typos

-improve output spacing
[sup] update project files

-update AUTHORS
-update ChangeLog
-fix readme typos and ommissions
-'fontsize' option is '-z' not '-s'
-replaced option section with animenu help output to help sync issues!
additionally displays the otherwise undocument [lircrc] command line
suffix
-add missing 'forward' lirc command
[add] allow empty menus

-fixes the segfault which occured whenever there were no items in
a menu context. this happens frequently for filesystem menus
[sup] update project files

-update .gitignore
-update ChangeLog
[imp] bootstrap 'make distclean'

-if possible (existing build files found) call 'make distclean' first
to ensure old build files don't break the build process
[imp] menu creation overhaul

-decouple menu/item creation from their position in any tree. coupling
all occurs after 'object' creation now, through either the (new)
'context->additem' calls for items, or after a menu creation call
-drop 'parent menu' and 'title' parameters from menu creation, all we
need is the file (e.g. root.menu)
-drop non-generic context's 'setsubmenu' method
-convert 'animenu_browse()' back to 'animenu_createfilesystem()', adding
back necessary parameters, in order to drop the animenuitem arg/coupling
dependency, returning an animenucontext once again
-merge 'animenu_setitem()' with 'animenu_createitem()'
-add 'animenu_initialise()' sole entry point and hide menu creation from
consumers (animenu.c)
-various name refactoring, item's can have an attached 'menu', not a
'submenu', animenu[item]_X->animenu_Xitem, animenu_create->
animenu_createmenu etc.
-re-order functions into relevent groups to ease code navigation