Offline mode support, part 1

Refactor MojangAccount so it exposes a less generic interface and supports login. Hide the ugly details.
Yggdrasil tasks are now only used from MojangAccount.
work on pasting instance logs

blame clang for formatting changes
Fixes to pasting
Open the url direectly.
revert
fix revert
Finish preliminary offline support

* ProgressProvider now has an abort() call
* Abort button support added to the progress dialog
* YggdrasilTask and MojangAccount adapted to support abort

YggdrasilTask will time out after 10 seconds of no network activity, or when the user pushes the Play Offline button.
In offline mode, all instance update tasks are skipped! This will need further work.
Merge branch 'feature_pasting' of https://github.com/robotbrain/MultiMC5 into develop
Move pastebin button on the console window to the left

It's been there before, it's there now :D