Value type

Add full support for value-types.

Scrutinizer will probably complain a bit about methods complexity, I'll (hopefully) fix that tomorrow.
I believe you should not validate calendar: there are too many possible ones. Currently only gregorian and julian are supported by Wikidata