added support for user to change email address
added error handling on bad token, fixed route, and added tests
Merge remote-tracking branch 'upstream/master' into change_email

Conflicts:
	mediagoblin/auth/lib.py
form is already validated, no need to validate again
send_verification_email was moved to auth/tools
modified verification emails to use itsdangerous tokens
cleanup after merge
New notifications

- Added request.notifications
- Email configuration fixes
  - Set config_spec default SMTP port to `0` and switch to SSL/non-SSL
    default if `port == 0`
  - Added email_smtp_use_ssl configuration setting
- Added migrations for notification tables
- Added __repr__ to MediaComment(Mixin)
- Added MediaComment.get_entry => MediaEntry
- Added CommentSubscription, CommentNotification, Notification,
  ProcessingNotification tables
- Added notifications.task to celery init
- Fixed a bug in the video transcoder where pygst would hijack the
  --help argument.
- Added notifications
  - views
    - silence
    - subscribe
  - routes
  - utility methods
  - celery task
- Added half-hearted .active comment CSS style
- Added quick JS to show header_dropdown
- Added fragment template to show notifications in header_dropdown
- Added fragment template to show subscribe/unsubscribe buttons on
  media/comment pages
- Updated celery setup tests with notifications.task
- Tried to fix test_misc tests that I broke
- Added notification tests
- Added and extended tests.tools fixtures
- Integrated new notifications into media_home, media_post_comment views
- Bumped SQLAlchemy dependency to >= 0.8.0 since we need polymorphic for
  the notifications to work
New notifications, fixed

- Remove notification-gem if notifications are null
- Move comment-susbscription next to add-comment button
- Add copyright header to notifications.js
What is models_v0.py?  An explaination!

This commit sponsored by Alex Hannan-Joyner.  Thanks!
pdf: remove two unused files (we use pdf.js in an iframe, no need for our own bastard copy)

Signed-off-by: Alon Levy <alevy@redhat.com>
Indenting some stuff in pdf.html and wrapping width and height parameters in quotes
Merge remote-tracking branch 'refs/remotes/rodney757-github/mail'
Removing the "enter your password to change your email" bit.

A good idea, though it feels fairly clumsy in the form, and I think if
you're logged in you can already sabotage the user pretty well.

This commit sponsored by Sergey Matveev.  Thanks!
Fix by Rodney Ewing so render_http_exception works with newer Werkzeug versions.
Merge remote-tracking branch 'refs/remotes/joar/notifications'

Conflicts:
	mediagoblin/db/migrations.py
Padding on the header-dropdown area

This helps make it a bit clearer that things are "contained inside"
the header dropdown area.
Fix the data integrity bug in test_misc.

It turns out this has to do with some additions to the fixture adding
of media entries.  Since the new fake_upload field is True by default,
adding multiple entries that have media_files at once meant that
multiple additions of FileKeynames would be added at once if they were
not saved at the same time.  Tricky!

Thankfully, Elrond helped us figure this one out.  Thanks, Elrond :)

And thanks also to Aapo Rantalainen for sponsoring this commit!
Adding a docstring to fixture_media_entry

It's not complete, but it makes clearer how to avoid errors with
fake_upload :)

This commit sponsored by Harper Sanford.  Thank you!
Reverting "No more of this find_packages nonsense."

This reverts commit b75eb88fabdac4a9fdc863969ec9472110732607.