Rewrote multiprocessing parts to only require one database connection

List of changes in detail:
- fingerprint_directory:
	Now uses mp.Pool.imap and updates database in callers
	process.
- fingerprint_file:
	Now uses _fingerprint_worker internally.
- _fingerprint_worker:
	Some slight changes to argument handling due to `imap`
	usage.

	Changed to return (song_name, hashes) where hashes is
	a set of hashes from all channels.
- path_to_songname:
	Changed to use `os.path.splitext`, this caused files with
	a period in their name to return the wrong name.
 Added SQLAlchemy DB backend.
fixed #20, now fingerprinted filenames are saved with fullpath.
added fingerprinting limit option that was missing in
fingerprint_file().
Added pip requirements.txt file.
added basic unittests.
added 2 royalty free .mp3 samples for testing.
fixed issue with thread/process-safety and SQLAlchemy
added missing db.set_song_fingerprinted call
 changed a bit the ORM schema and queries
Updated ORM tests. Added basic test cases for SQL Plain backend.