use discid_read_sparse when available

We only want to read the TOC when no features are given explicitely.
add MCN api

This is available starting with libdiscid 0.3.0,
but we only require 0.2.2 -> try-except.

None is returned when it is not implemented or not requested.
add mcn to doc
Merge branch 'master' into isrc_api
create and use _FEATURE_MAPPING

That mapping is a good way to implement the feature enum of libdiscid
and we can also use it to create FEATURES_IMPLEMENTED on the fly.
don't request features we don't know of

I removed the possibility to request all features (UINT_MAX) again.
It would lead to weird behavior as phw stated.

Features that wouldn't need additional changes in this module,
other than adding the mapping should be rare and python-discid,
would get added to this module fast anyways.
It is more likely that libdiscid is older than python-discid since it is
in stable repositories for Linux and needs new builds on other
platforms.
Merge branch 'master' into isrc_api

Conflicts:
	discid.py
	doc/discid.rst
add tests for mcn api
add ISRC API
test: create test_discs dict
reset requested_features in put()

Otherwise we might indicate that ISRCs were read,
when this is impossible with put().
The difference would only be "" vs. None,
since the structure is reset in libdiscid for put().
Merge branch 'master' into isrc_api

Get the padding fix for when 1st track wouldn't be 1.
(amended manually for track_isrcs)
Merge branch 'isrc_api'

Conflicts mostly due to moving read() from class to module level.

Conflicts:
	discid.py
	examples.py
	test_discid.py