Added the ability to plug in a log function

Added the ability to plug in a log function in place of the existing
calls to io:fwrite and error_logger:format.  The details are as follows:

(1) Added two new types to unsplit.hrl:

    * log_type(), which is either the atom 'normal' or the atom 'error'.
      Each log message has one type or the other.
    * log_fun(), which is the kind of fun that writes log messages.  It
      takes two arguments: a log_type() and a string().

(2) Added a key 'log_fun' to the {unsplit, ...} application environment
    variable in unsplit.app.src.  Its value is a tuple {Module, FunctionName}.

(3) Added a function unsplit:default_log_fun, which is what it sounds like:
    the default log_fun when none is explicitly specified.  It writes normal
    messages using io:fwrite and error messages using error_logger:format,
    mirroring previous functionality.

(4) Added three overloads of a function unsplit:log_write, which writes
    messages (with or without formatting) to whatever log function has
    been configured in the {unsplit, ...} application environment variable.

(5) Added a function unsplit:get_logger, which builds a fun that calls the
    appropriate log_fun.

(6) Replaced all explicit calls to io:fwrite(...) with calls to
    unsplit:log_write(normal, ...) instead.

(7) Replaced all explicit calls to error_logger:format(...) with calls to
    unsplit:log_write(error, ...) instead.

(8) Regenerated unsplit.md documentation file.

When the new 'log_fun' application environment variable has its default
value, unsplit behaves as it did before.  However, logging functionality
can now be plugged in to replace the existing functionality.