General update

Updated component in compliance with DataModel 1.0 aiming at being able to properly manage Fingerprint, Item and Property objects in front-end code. Functionality supposed to be obsolete (e.g. toJSON(), newFromJSON()) is removed in favour of using the wikibase.serialization component (see https://github.com/wmde/WikibaseSerializationJavaScript/pull/6 for corresponding changes to that component).
The changes are supposed to add completeness to the component being able to properly model the UI using objects provided by the component. Inspired by the back-end implementation of the data model, there are, however, a few differences. Most obvious is the more intuitive and consistent naming of constructors ending with <code>*Set</code>, <code>*List</code> and <code>*Group</code>. The concept of groups is not a dedicated part of the back-end data model and is, instead, applied and resolved during serialization/deserialization. However, since grouping is an essential logical concept, it should be an integral part of the JS data model.
Some classes use `return this.length === 0`, others use `return !this.length`. Would be nice to be consistent.