Enforced validation

Implementation of enforce validation:
- edit project page/edit project version page: maintainer to choose validation rules they want to apply
- 3 new states -

|  State  |  Default view in Editor  |  Can toggle by user in editor?  |   
| ------------- |:-------------:| -----:|
| Off |  Turn off  | Yes |
| Warninig |  Turn on | Yes |
| Error |  Turn on | No |

If there's validation error(Validation with 'Error' state):
- In translation when user try to save as 'Translated' in editor, a warning popup will appear.
- When TM Merge and Search & Replace, translation update will be ignore and return warning messages.
- When upload translation via WebUI or REST, translation update will be ignore and return warning messages

**NOTE**
For anyone else want's to review this in one big commit:
git checkout master
git pull
git checkout -b temp 
git merge --no-commit --squash enforcedValidation
git diff --staged