storage:ts2.py: add message id attribute to contextname

Make getcontext() use message id attribute if present. Otherwise different units
might have same id which in turn makes pootle loose another unit. Also make
getid() to use context if it is present. Qt ts can have an empty source.

Fixes bug 2901
storage/test_ts2: Add tests for getid()
Docs: make docs with -W i.e. warnings as errors
Docs: fix JSON format header
storage/base: Remove unneeded import

We don't actually support Python 1.5.
Docs: fix docstring in translate/storage
py3: Various import cleanups
tests: add Makefile target to run tests
misc: Get rid of decorators.decorate()

All it was doing is emulate functools.wraps()
misc: Get rid of profiling.py (unused)
misc: Get rid of xmlweapper.py (unused)