use PY3 constant
use requests' built-in json decoding
buffer does not exist in py3
update fpcalc.py for py3k
source layout reorganization
restore rate limiting

which was eliminated in the py3k pull request.
hook into requests to encode POST body

This lets us use a more convenient requests API (no explicit body construction
with urlencode, and hence we let the library take care of encoding).
py3: standardize return type from backends

Previously, we were decoding the `fpcalc` output, so we were returning unicode
from _fingerprint_file_fpcalc and bytes from _fingerprint_file_audioread. This
leaves the tool's output as encoded data (which is nice and clean since it
avoids an unnecessary step -- we don't need the data as a string) and jives
with the standard library (where base64-encoded data is in bytes).
encode body data, if necessary, before compression

Slightly cleaner abstraction. Also eliminates the need for any explicit PY3
checks.
readme notes about py3