Implement @annotation expansion

This addresses #22.
Clarify framing code
Instead of removing and re-adding each property separately in expansion create a new object
Process properties in order during expansion
Ignore the order of object members in the test suite
First step toward supporting property generators in expansion

This ignores everything from the term definition of property generators except the first IRI.

This addresses #17.
Refactoring: Move expansion of keyword values into separate method
Refactoring: Expand all keywords in Processor::expandKeywordValue()
Bugfix: The last commit broke expansion of @graph, this repairs it
Expand property generators, everything in the term definition apart from @id is still ignored

This addresses #17.
Ensure all blank nodes are relabeled during expansion

This is needed for property generator support as every node of a property generates needs to be labeled with a blank node identifier to be uniquely identifiable.

This addresses #17.
Ensure that all blank nodes created by a property generator are labeled

This addresses #17.
Rename Processor::getTermDefinition() to Processor::getPropertyDefinition() and take into account property generators

This addresses #17.
Refactoring: Use Processor::getPropertyDefinition() instead of accessing the active context directly
Bugfix: Only language-tag strings and make sure only strings in value objects are language-tagged
Make sure expanded object contains no invalid properties
Sort IRIs of property generators to simplify equality checks
Introduce the notion of an inverse context and pass it around but don't use it yet

This addresses #17.
Allow @annotation everywhere (also with @set and @list)
Fix some docBlocks