Implement user's tag filtered gallery page

tags used to be global, you could only browse media by tag for all users.
This patch implements a view that allows us to browse only a user's tagged
media.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
Switching set syntax to python2.6 compatible
Improve formatting for hook template docs.
firest
Some tests for media_data, yeah!

One in the submissions, that posts a jpg with gps data.
One in the modelmethods to test some behaviours.

The later test fails.
Fixes coming up.
Rewrite media_data handling to use relationships

Instead of doing query by hand, use the relationships on
the models to find the media_data. Is is made possible by
the BACKREF_NAME in each models.py, which lets us know the
local attr to ask for.

Also initialize the relationship attribute on new
media_data instead of the media_id. Also do not add it to
the session. This gives us:
- This automatically initializes the other side of the
  relationship, which will allow later acces via that way.
- If the media_data is too early in the session, when the
  (new) media_entry is not yet in there, this could get
  conflicts. Avoid those by not adding to session.
- Uses cascading to commit media_data together with the
  media_entry.
Turn media.{backref_nam} from a list to a scalar.

For all our media_types, let the backref on the media_entry
be a scalar (there is only one media_data per media_entry)
instead of a list with zero or one entry.

The media_data toolchain on MediaEntry currently handles
both transparently.
Drop media_data_table property.

Only when creating a new media_data row, we need the table.
So load that locally in media_data_init().
Drop backward compatibility for media_data backref.

Now we only support media_type backrefs with uselist=False.
issue 615: config geolocation_map_visible gone.

The template in the geolocation plugin still used the old
config option. Just remove that. To enable it, you enable
the plugin. No need for extra config.

Tested by manwesulimo2004 (via IRC).
Search for translation in all templates.

We missed to search for translatable strings in our plugins
and other things that might have templates.

The search is now for **/templates/**.html. That should
catch a lot more.
Issue 621: Extract strings from hooked templates.

templates using the new hook system were not extracted
properly. One needs to add the new extension to the
extraction process as well.
Small changes to "Add <media> to collection" string

Add quotation marks and "a" ("a" was proposed by Elrond).
Merge remote-tracking branch 'aleksej/quotes_and_a_for_addcoll'

* aleksej/quotes_and_a_for_addcoll:
  Small changes to "Add <media> to collection" string
Mark "Collection" for translation in media_collect.
Rename {{title}} to {{media_title}}.

Rename a variable in a translated string to make it easier
for translators to know what they're dealing with.

And add a <title/> block.
Committing present MediaGoblin translations before pushing extracted messages
Committing extracted and compiled translations
Use system wide EXIF package, if available.

Created and tested by Simon Fondrie-Teitler.

Thanks!
Use logging.config.fileConfig()

Instead of the monster I had built before.