value: add UNKNOWN type and default constructor

Values can now be instantiated without an argument, in which case they
are of type "UNKNOWN". This is required for auto instantiation in some
cases. Unify indentation along the way.
factory: add value_to_data_object that operates on raw environment

To be able to use the function in more cases provide a version which
just takes the raw Environment pointer rather than the encapsulating
class. Along the way unify indentation.
utility: fix retrieval of external address values

This returned the pointer to the structure containing the actual
address, rather than the actual address.
utility: support for unknown arguments and return values

Add utility functions required to enable passing of unknown values to
and returning them from external functions. Along the way add missing
declaration of external address retrieval function.
environment: proper callback for returning unknown values

The existing code to return unknown values was incomplete, it neglected
the passing of a data object structure for the return value. By creating
custom callbacks this is now properly handled.
configure: set version to 0.3.1