Fix get_date_interval() func
Add project_code to get_grouped_paid_words() result
Requirements: Bump up lxml requirement to match Toolkit

Because it makes no sense to provide a lower requirement since the
Toolkit is already going to pull at least lxml 2.2.0.
Register tag using decorator

Using decorators makes more difficult to miss the registration.
Avoid multiple DB querying during reports generating

Different parts of reports use the same data (except sorting order).
Let's keep queryset result in memory as list and change sort-order
internally.
Make translated words totals equal in differnet parts of report

When we summed translated word count by translation project we could get
a total count that differs from total count in summary. That is a side
effect to see the whole numbers for a translation project.
Totals must be equal. And subtotals are calculated for that total in
whole numbers.
Cleanup: Minor style fixes

Bits and bobs cherry-picked from older master commits lost in the logs
Cleanup: removed dead code

This should have been gone in 2bf5bd6a.
Editor: moved around 'Add Comment' link
Editor: added translator comment customizing blocks
Add double_quotes_in_tags critical check
Fix unescaped_ampersands critical check
Move doublequoting check to cosmetic category

Note: refresh all CachedMethod.GET_CHECKS values after appling this
commit (unit_count cached attribute was renamed to unit_critical_error_count)
Avoid refreshing stats for obsolete stores

Since a Store can be obsolete we have a bug #3322. Let's add extra check
if a Store is not obsolete in refresh_stats.
Increase job timeout for refresh_stats
Don't change unit state when editing obsolete store

Prevent data inconsistency which can happen in #3322.
Skip image banners source strings in double_quotes_in_tags check
Fix calculation of number of units with critical errors
Improve double_quotes_in_tags check

There were false positives when a source string doesn't contain tags and
tags with double quotes are found in a translation string.
Make sure special chars don't overlap with the right-hand-side labels