TM: Initial support for local TM

Add a TMUnit model and store new/updated units in the TM when they are
saved.
TM: Add support for querying local TM
TM: Add local TM support to the editor
TM: Filter out TM results identical to the unit

We are not interested in results that has the same source and target
text as the current unit.
TM: Add --populate-tm option to upgrade command
TM: Filter out units based on their length

The Levenshtein distance is at least as much as the difference in string
length, so use this fact to filter out units that are impossible to have
the desired similarity.