Restrict coverage on travis to apps
fix bug 1074920 - Restrict coverage on travis

Restrict to apps in project, rather than include coverage of library
code.
fix bug 1074922 - Sync contribution docs w/ MDN
fix bug 1063693 - browser.slug is write-once
bug 1063130 - Better errors for Cached*

CachedModel - attribute miss raises AttributeError
CachedQueryset - failed get raises DoesNotExist
bug 1063130 - JSON API - render nullable FKs

Null Foreign Keys were rendered as string "None", now rendered as null.
bug 1063130 - add features model, API endpoint

* Adds django-mptt for Modified Preorder Tree Traversal.
* Adds MPTTRelationField to handle MPTT related querysets like ancestors
  and siblings.
* Adds OptionalCharField to display empty strings as null
bug 1063130 - Verify slug behaviour
bug 1063130 - Add canonical translation option

feature.name can either be a human-readable name or the "canonical" form
of the name, such as "<input>" for the HTML input element.  These are
stored in the database as the "zxx" translation (the ISO 639-2 "no
linguistic content" identifier), because JSONField doesn't store
strings.  They appear as strings in the JSON API output.
bug 1063130 - flake8 for Python 3
bug 1063130 - Add some links to historical rep

Relations that are represented by a primary key named "(relation)_id"
are eligible for being included in the "links" attribute in the
historical resource.  Reverse relations, such as the to-many relations,
are not eligible.
bug 1063130 - Improve load_webcompat_data

* browsers are MDN sorted (alpha by desktop, alpha by mobile, then
  Firefox OS)
* versions are version sorted (unspecified, then 1.0, then 1.5, then
* 1.10, etc.)
* Convert version "1" into version "1.0" (but "1.1" stays "1.1")
* Default to INFO level debugging, -v to get DEBUG, -q to get WARNING
bug 1063130 - Load features from webcompat data

All feature names are treated as non-canonical English strings.  Import
is very slow due to incremental cache updates.
bug 1063130 - Add setting for instance cache

When USE_INSTANCE_CACHE is True, instances are loaded from the cache and
changes trigger cascading cache invalidation.  When USE_INSTANCE_CACHE
is False, instances are always loaded from the database and there is no
cache invalidation.  This is useful for bulk imports.
bug 1063130 - Update requirements

Django 1.6.7
memcache updates that are py3-friendly
bug 1063130 - Drop extended feature relations

Extended relations were causing representations to get huge.  Instead,
lean on views and eventually add JSON API's "include" functionality.
* Drop features.ancestors - clients can use view or follow parent
  relations with caching
* Drop features.siblings - clients can use children of parent item
* Drop features.descendants - clients can use view or follow chidren
  relations with caching
bug 1063130 - Install subset of features

Web compat project includes 3000+ features.  This makes the features
list API endpoint unusable, until pagination is in place.  For now, just
import the 57 CSS features starting with 'c', which gives a useful
working set.
bug 1063130 - Use LocMemCache in tests
bug 1063130 - Add filtering by feature.parent

* /api/v1/features gives all features
* /api/v1/features?parent=1 gives children of feature #1
* /api/v1/features?parent= gives "root" features
fixes bug 1063130 - Add basic feature browser