Rewrite of ycm_compile to make it better.

* Additionally added progress hook to downloads.