Cleanup of DataType related formatting code

Fixed a bunch of broken code, removed some not used code, rewrote some messy code and added a lot of tests

* Moved code from EntityIdFormatter to EntityIdLabelFormatter
* Added new EntityIdFormatter that just formats an EntityId (complimentary with EntityIdParser), plus associated tests
* Deleted unused and broken SnakFormatter
* Deleted pointless, badly written and non-tested StringFormatter
* Deleted pointless and badly written WikibaseFormatterFactory
* Added tests for existing EntityId formatting code
* Added tests for existing PropertyParserFunction code
* Added top level factory in client to improve dependency management
* Added new PropertyDataTypeLookup interface plus both mock and EntityLoader using implementations, plus tests
* Added new SnaksFormatter class replacing broken code in PropertyParserFunction
* Fixed various documentation issues
* Did misc cleanup work in modified code

Change-Id: I0067e1cba4141b7612c7d9d5bcb18352dd812984