Don't show user email in display name.

When import from scm/meta/git we use email as username, then when
a user's first/last name are all missing, the email will show up
in public domain. It should be avoid.

Change-Id: I3b0c6a1e74460276ee36947b0314404849b44a29
Fixes: #2000
Show subdomain's parent name.

Show full subdomain name in Domain / Subdomain format.

Change-Id: I6615a57275c376cf0ba1b9cf5a0d64ed38315dc5
Fixes: #1986
Add unittests for scm parser.

Split parser code from etl.scm into elt.parser and add many
unittests for parse_blocks() and parse_user().

Change-Id: I836472d49034ee76718f88026a827677c5992a28
Add south initial migration.

South need this initial migration file to generate auto
detection in subsequent schema migrations.

Change-Id: I81617eecdd5711178da7d28eff56ad46f466d1ba
Backup packages data

In order to change gittree and package relationship to m2m, have
to backup packages data into a separated temp table. After the
relationship is changed, move it back from backup table.

Change-Id: I2379fb099965685019ed19cd667f32f1101d1de5
Remove redundant packages.

Package.name must be unique, but now it isn't.

For packages with the same name, only keep the one which has the
smallest id. Mark deleted packages in backup table, so that when
need to rollback, they can be recovery from there.

Change-Id: I2d3afd56c212b479446cdee2644e264d7ce065c6
Change gittree and package to m2m relationship.

Change schema of gittree and package to many to many relationship.
And import old data from backup table to this new m2m table.
Finally delete the backup table.

Django proivde two query sets for every m2m field. They are
gittree.packages and package.gittree_set.

Change web pages to use these two query sets and some methods in
injectors.py are redundant, so we can remove them.

Change-Id: Iba7c41ff6ba050103522429c56d73cf42c908d7a