Switch back to custom scanner

Fixes #565 by making sure we properly clean up the pipeline properly. Ended up shaving some yaks while at it so:

- Speeds up the scanning process significantly
- Uses mostly the same tricks as the pbutils discoverer, but makes sure to switch to NULL to work around 0.10 issues.
- Moves more of the bits of code that touch gstreaming into audio.
- Makes the min duration an option on the scanner so we can still use it for streams etc.
- Makes sure the scanner produces all the data we need such as mtime
- Adds TODOs for some items that need to be fixed but didn't fit in this PRs scope.