Move extern declarations to the main header file.
Move UNUSED define to the main header file.
Move each e-command to its own separate file.
Make filenames shorter, consistent and prettier.
The getopt(3) function returns an int not a char.
Remove unneeded flag variable.
Make the e-commands functions return void.

They are, currently, using the err(3) functions and were always
returning zero on success.
Sprinkle some const.
Add function to search and execute an e-command.
Limit scope (per issue #9).
Move structure definition to the equivalent file.

This is the start of the e-command code refactoring.
Idea taken from tmux.
Rename function pointer to exec.
Make an e-command accept an alias.

For now, used only by the rmfile (also known as rm) e-command to avoid
duplicating its structure.
Add e-command usage to its structure.
Fix help e-command argc handling.
Move all warnings to the e-command handling code.
Remove directories from program name.

This also makes it global, which will be needed when outputting the
e-command usage.
Reset getopt(3), always.
Remove long options.
Move option parsing to a separate function.