Bad layer dialog improvements (Funded by Sourcepole)

This commit contains the following improvements:
- The browse button is disabled if the layer data provider does not support files (a `QgsProviderRegistry::getProviderCapabilities()` method is added for this)
- Fix the `accept()` slot being fired twice (the `accept()` slot is already connected in `ui_qgshandlebadlayerbase.h`)
- Use a folder selection dialog when selecting a new directory for multiple selected items

Funded by Sourcepole QGIS Enterprise.