Added custom callback for compile_command

Adds an optional callback parameter to `dispatch#compile_command`. If this parameter is not present, it defaults to the old behaviour (calling `s:cgetfile` if this was a foreground request), but this allows library users to add custom behaviour (e.g. show quickfix after background requests are done, open the location list rather than the quickfix list). 

This should make vim-dispatch more flexible for use by other plugins (see e.g. [LaTeX-Box#106](https://github.com/LaTeX-Box-Team/LaTeX-Box/issues/106) or [synctastic#699](https://github.com/scrooloose/syntastic/issues/699)), but doesn't break current APIs.