echonest: simplify ID-based lookup ("profile")

- don't use generic Exceptions for control flow
- extraneous .get() calls
echonest: sort analysis methods by priority

These are now ordered in the code in the same sequence that we try them:
- profile (ID)
- search (metadata)
- identify (fingerprint)
- analyze (upload)
echonest: simplify fingerprinting strategy

mostly expunging exception-based control flow
echonest: clean up analyze workflow

- handle the right exceptions
- add duration to from_track dict
echonest: clean up FFmpeg-based audio conversion

subprocess.check_call helps a lot here.

--HG--
extra : amend_source : 009a79de8f97407fc60b62aa6b7bd23856286082