Split validator out into a separate file

From review by jezdez.
Mark messages for translation

Review from jezdez.
Review fixes, more tests and fixes for tests