Show comments using Bootstrap popovers.

Closes #6.
Display JIRA links in own column.

This code attempts to parse the title into a metadata portion
followed by the actual title.  When possible, we remove information
from the title that's displayed in other columns (or via the tabs).

This makes it easy to quickly see which patches don't have JIRAs
and helps to declutter the table.

I also shortened some of the column labels.

Inspired by #9.
Display diff statistics.

Modify updater task to fetch from /pulls API instead of /issues,
since this includes the diff statistics.

Fetch and cache /pulls/*/files JSON.

Use ETags when requesting comments and files.

Use app version as memcache namespace.

Closes #8.
Use /issues to list PRs and /pulls for individual ones.

It turns out that /pulls doesn’t support &since= for fetching all
issues updated after some watermark, which was causing the task
queue to blow up with duplicate tasks.

Use /issues/ to fetch issue comments (/pulls/ was only getting the diff ones).

Decrease queue rate.
Don't display Jenkins commands as comments.

Add "Asked to test" Jenkins status to represent states where
someone has asked Jenkins to test a PR but the tests haven't started
running yet.

Closes #11.
Display mergability.  Closes #3.
Use separate queues to fetch fresh vs. old PRs.

Closes #15.
Auto-detect components based on changed files.

Display issues under multiple components and add extra components.

Closes #10.
Remove memcache for homepage; set cache-control header.

The non-minified HTML might become too large to store in memcache,
which would cause the app to crash.  I'm going to try using GAE PageSpeed
instead.
Highlight users who said LGTM or asked to close PR.

Closes #5.
Add gae_mini_profiler to diagnose perf. issues.
Cache expensive derived properties.
Merge pull request #1 from databricks/master

merge upstream changes