create_reference, drop the symbolic param (#213)

Now we figure out whether it is a direct or symbolic reference based on
the type and value of the target. This guessing will fail in very very
rare situations, for that we still have the explicit lower level API.
docs: fix/improve references chapter a little bit
Check errors on module initialization