Changed the decorator interface

We no longer assume that the decorator returns a String, it should be
able to return any object.
Added support for immutable values
We can now access the batch in populate

This is needed to support blank nodes, which again is needed to support
objects without IDs as the value of a property in another object.
Decorators can now access the batch and statement

We've come up with examples where a decorator would need to know more
than just the value to produce the required result.
Added decorator for solving AFM-59