Add drag and drop config import closes #11004

As requested by @vincent3569 this PR allows user to import config.json settings via a drag and drop import. Fixes #11004.
Attached are some screenshots of the UI changes.

Drop target
![screen shot 2014-06-11 at 10 49 26](https://cloud.githubusercontent.com/assets/678372/3242850/56e89090-f150-11e3-8808-23f6bd7dd71b.jpg)

Error on uploading invalid file
![screen shot 2014-06-11 at 10 49 47](https://cloud.githubusercontent.com/assets/678372/3242852/58e3b532-f150-11e3-854c-3152b2db44b6.jpg)

Success message
![screen shot 2014-06-11 at 11 04 36](https://cloud.githubusercontent.com/assets/678372/3242853/5bcae874-f150-11e3-9063-153df42be53b.jpg)

Side nav
![screen shot 2014-06-11 at 11 04 53](https://cloud.githubusercontent.com/assets/678372/3242855/5ed4bb1c-f150-11e3-97bb-808aa150d4c1.jpg)

Yeah either way with the input nested inside a label or using the `for` attribute I think you get browser support problems. But this is from memory going a while back.

But even if we do do it like this I would still need to add a javascript click event onto label clicks so that we can remove any existing alerts.