New media sync protocol and updates to media handling

The main features of this commit:
1 - Port of the new media sync protocol (released in Anki 2.0.27)
2 - Cleanup and update of Media.java to match Anki 2.0.27

Things to note about this commit:
- Tests for the Media class have been ported over.
- A new media database format has been added with the extension ".ad.db2". The .ad prefix is specific to AnkiDroid to prevent issues caused by copying the file to the desktop or vice versa. If an old media database is found, it will be converted to the new format (and if it fails for some reason, it creates a new empty database).
- File names are now normalized in NFC form before being added to the database and/or synced (previously used NFD, which is not the format used by Anki)
- Media-related regular expressions have been fixed and the group indexing scheme documented (Java doesn't support the named groups that python uses)
- Previously, a clean copy of the media database was cloned from the assets folder. With this update, it is created at runtime with SQL, so the file in assets has been removed.

Known issues;
The multimedia note editor bypasses the Media manager for most of its tasks which could lead to inconsistencies in the future.
force media resync on deauth
deauthing should reset lastUsn to 0 

(https://github.com/dae/anki/commit/a5d91314459d6945568757713ef2431841299f94)
(https://github.com/dae/anki/commit/f54f5870fa94e05e96bf72210a70934ebd2b734c)
Bump version to 2.2.3alpha0
@branch-specific
Make the "dictionary_values" as long as the "dictionary_labels". Should fix issue 2203
Merge pull request #439 from hssm/media-sync-protocol

New media sync protocol
Merge pull request #437 from ospalh/fix-for-2203

Fix issue 2203
Disable media sync on Android <=2.2 if non-ascii file name found

Unicode normalization is not supported on Android 2.2 and below. Since the new media sync protocol requires file names to be normalized in NFC form, we now abandon a media sync if we detect a media file name that cannot be entirely represented in the ASCII encoding and disable media syncing on that device.

This approach is likely to allow a number of users on those devices to still be able to sync media without issue.

Note: A dialog is shown if media becomes disabled after a sync. Collection syncing is unaffected.
Assume we are on FAT32 for every sync attempt

Temporary measure until we can find a reliable way to detect the file system type.
Merge pull request #441 from hssm/media-sync-protocol

Media sync protocol
Bump version to 2.2.3beta1
Update 13-newfeatures.xml
Skipped 'f9310f3' from develop: Bump version to 2.2.3alpha0
@branch-specific
Merged '0f29f80' from develop: 834e623,422a8c6

Commit '834e623'
New media sync protocol and updates to media handling

The main features of this commit:
1 - Port of the new media sync protocol (released in Anki 2.0.27)
2 - Cleanup and update of Media.java to match Anki 2.0.27

Things to note about this commit:
- Tests for the Media class have been ported over.
- A new media database format has been added with the extension ".ad.db2". The .ad prefix is specific to AnkiDroid to prevent issues caused by copying the file to the desktop or vice versa. If an old media database is found, it will be converted to the new format (and if it fails for some reason, it creates a new empty database).
- File names are now normalized in NFC form before being added to the database and/or synced (previously used NFD, which is not the format used by Anki)
- Media-related regular expressions have been fixed and the group indexing scheme documented (Java doesn't support the named groups that python uses)
- Previously, a clean copy of the media database was cloned from the assets folder. With this update, it is created at runtime with SQL, so the file in assets has been removed.

Known issues;
The multimedia note editor bypasses the Media manager for most of its tasks which could lead to inconsistencies in the future.
Commit '422a8c6'
force media resync on deauth
deauthing should reset lastUsn to 0

(https://github.com/dae/anki/commit/a5d91314459d6945568757713ef2431841299f94)
(https://github.com/dae/anki/commit/f54f5870fa94e05e96bf72210a70934ebd2b734c)
Merged 'f71878e' from develop: Make the "dictionary_values" as long as the "dictionary_labels". Should fix issue 2203
Merged '4fa70e9' from develop: 1ce09d9,f27a795

Commit '1ce09d9'
Disable media sync on Android <=2.2 if non-ascii file name found

Unicode normalization is not supported on Android 2.2 and below. Since the new media sync protocol requires file names to be normalized in NFC form, we now abandon a media sync if we detect a media file name that cannot be entirely represented in the ASCII encoding and disable media syncing on that device.

This approach is likely to allow a number of users on those devices to still be able to sync media without issue.

Note: A dialog is shown if media becomes disabled after a sync. Collection syncing is unaffected.
Commit 'f27a795'
Assume we are on FAT32 for every sync attempt

Temporary measure until we can find a reliable way to detect the file system type.
Skipped 'b3ca29d' from develop: Bump version to 2.2.3beta1
Skipped 'f883976' from develop: Update 13-newfeatures.xml