metomi/rose#646: improve rosie database performance.

This changes the schema of the rosie suite database in order to improve
performance.

The main bottleneck in performance was the all-revs join which was
highly complex. The schema has been changed to place more emphasis on
simplicity of join and less emphasis on avoiding duplication of data
across revisions.

The properties for a given suite are stored explicitly for each
revision rather than our previous approach of keeping track of diffs.
The modified table has been removed and each idx-branch-revision is
stored separately in the main and optional tables. The information in
the changeset table, which already kept track of idx-branch-revision
info, has been merged into the main table to avoid an unnecessary join.

The change makes the all-revs queries much simpler and faster (around
30x faster). Normal queries are also faster (2x faster) presumably
because the changeset table has been removed and no longer needs to be
joined.

The sqlite files are only around 2x larger (the duplicated data is
being compressed correctly by sqlite).

The db.py database select code is also now a lot easier to understand.
metomi/rose#646: standardise table names.

This implements feedback from @matthewrmshin.

It standardises the naming convention for db tables.
Merge pull request #1085 from benfitzpatrick/646.rosie-db-speedup

#646: rosie db schema update and speedup
Document how to contribute to Rose
Merge pull request #1087 from matthewrmshin/cla

Document how to contribute to Rose
rose bush: view mode: fix unicode decode error

An apparently plain text file may contain strings that causes
`UnicodeDecodeError`. This change catches the problem, and return the
file in *download* mode instead of rendering it in Jinja2.
Merge pull request #1089 from matthewrmshin/fix-rose-bush-view-unicode-decode-error

rose bush: view mode: fix unicode decode error