Merge pull request #16 from jwhitlock/1098672_mdn_uri

Fix 1098672 - Convert feature.mdn_path to mdn_uri
bug 1079932 - Convert load_spec_data to sync

tools/load_spec_data.py now reads existing data, compares it to data
loaded from SpecName and Spec2, determines new, updated, deleted, and
unchanged data, confirms with the caller, and then executes the
operations.

Also:
- Adds tools/resources.py, for storing related API data
- Adds tools/tests/test_resources.py, for unit tests
- Adds subset of tools to automated tests and coverage
- Adds support to Client for deletes, updates, and URL generation
bug 1079932 - Handle null to TranslatedTextField

Handle passing JSON null as value of optional TranslatedTextField.
Previously, TranslatedTextField.from_native expected a string value.
bug 1079932 - tools/load_webcompat_data.py to sync

Convert tools/load_webcompat_data.py to use sync semantics rather than
load to an empty API semantics.  Includes:
- Handle null IDs (for example, feature.parent for a root feature)
- Handle 'falsey' IDs (such as placeholder 0 for the chrome Browser)
- Switch Resource.to_json_api to default to including sorted fields
- Fix Support.alternate_name_mandatory to Support.alternate_mandatory
bug 1079932 - Add tools/download_data.py

This tool is used to download the data from the API.
bug 1079932 - Add tools/upload_data.py

This tool is used for uploading data from disk versions of JSON API.
bug 1079932 - Refactor logging and API download

- Loggers are now names 'tools.(module name)', and command line tools
install a handler for the 'tools' logger.
- Client.get_resources now .get_resource_collection, drops logger_name
  parameter.
- Collection.load_all now uses Client.get_resource_collection, for
  better logging of massive resource chains.
- Collection.change_original_collection drops logger_name parameter
bug 1079932 - Add docs for data repository

Data is stored at https://github.com/jwhitlock/browsercompat-data.  Can
be moved to Mozilla-owned repo, or a new repo can be created using
tools/download_data.py.  Data and API code is at
http://browsercompat.herokuapp.com.
bug 1079932 - Improve browse app for Versions

- Display dates as 2014-12-05 w/o hour / minute / second
- Wrap release_notes_uri links in <a></a>
fix bug 1079932 - More ordering in JSON API

- Translated fields - 'en' first, then other languages in alpha order
- Use OrderedDict more to preserve order
- Use unicode more consistantly
- Use JSON serializer in diffs, to preserve field order
- When order doesn't matter, sort related IDs by ID in cache