Clean up entity patching code

TL;DR: split patching code from Entity and did the same with its tests

Done:

* split patching code from Entity and derivatives
* drop usage of deprecated term related methods defined by Entity
* split Fingerprint patching code into its own class
* split Statement patching code into its own class
* split SiteLink patching code into its own class
* drop usage of deprecated claim related methods defined by Entity
* drop usage of deprecated Item methods
* fully replicate the old tests and then remove them from EntityTest and derivatives

I don't see the benefit of this interface. `EntityDocument` is only about ids and the ids will never get patched because they are immutable. Therefore we will also most likely kill the `EntityDiff` class entirely because it contains now `EntityStuff` but only stuff specific for fingerprints or claims/statements.