Wrote documentation for lazyevaluation.hpp, further API improvements

1) Added missing documentation
2) Added Custom value to enum Field::Type.
This new field allows others to make use of the LazyCondition mechanism
by introducing custom field types. These are not expected to be
evaluatable by other evaluators outside the one a Field of this type
was designed for.