librarysync: allow to use use beets library instead of crawling

Conflicts:
	data/interfaces/default/manage.html
	headphones/__init__.py
	headphones/db.py
	headphones/librarysync.py
	headphones/webserve.py
Add some much needed indexes for libraryscan
Better structure for librarysync

Conflicts:
	headphones/librarysync.py
Factor out code for computing "havetracks"

Conflicts:
	headphones/importer.py
Rework artist disambiguation; split importer.findArtist from importer.searchArtists

findArtist(limit=1) was being used for disambiguation when adding artists
after librarysync, whereas findArtist(limit=100) was being used to search
artists from web.

They were different uses which required different results, and the
disambiguation logic wasn't required when searching from web, so it makes
sense for them to be separate.

API also updated.

Conflicts:
	headphones/api.py
	headphones/importer.py
	headphones/mb.py
helpers.cleanName(): factor out some duplicated code

Conflicts:
	headphones/helpers.py
	headphones/importer.py