scanner: Switch to gst.pbutils.Discoverer and refactor API

- New API wraps gst.pbutils.Discoverer for mopidy use.
  - Custom scanner code removed.
- Callback based async API switched with simpler synchronous API
  - Scanner is feed one and one URI and returns the result or raises an error.
- Adds new ScannerError exception for error handling in scanner
- Limits local/scan_timeout to 1000-3600000 i.e. 1s to 1h
- Files with zero duration are now excluded.
- Mtime handling moved out of scanner so we can use it for streams etc.
scanner: Review comments and flake fixes

- Move ScannerError to exceptions module.
- Subclass ScannerError from MopidyException.
- Fix import sorting.
Merge pull request #538 from adamcik/feature/gst-discoverer

scanner: Switch to gst.pbutils.Discoverer and refactor API