Add ability to pass custom data to output callback functions

This patch is a premilinary attempt to enable passing of custom
objects/data to the callback functions in _out and/or _err.

The way it's made, the callback function *must* include the `stdin`
and `process` arguments, because otherwise it would require redoing
the code that counts arguments of the callback function.

An example callback function could look like this:

    def output_callback(line, stdin, process, socket, data_class):

and the data to this callback function would be passed like this:

    from sh import mpv
    mpv("file.mp4", _err=output_callback, _bg=True, _callback_kwargs=\
        {'socket' : socket, 'data_class' : data_class})

I am not sure if a more elegant solution exists, so I created this
to at least start the debate on what the most elegant solution is,
or if this will suffice.