wayward::monad: Support monads with multiple parameters.
Introduced trait "IsPointerLike" that's used by Maybe to implement a
zero-overhead specialization for smart pointers (and regular pointers
for that matter), in which case NULL == Nothing.
ISQLTypeMapper for mapping values to SQL literals.
Moved IType and get_type into Wayward Support.
Related Any-types can now convert to each other.
Updated SConstruct
Some insertion checks progress.
Revert "Moved IType and get_type into Wayward Support."

This reverts commit db82ee97b1b1d55520f1c9cdb4a69a8b4b2b3a04.
Moved PostgreSQL adapter into its own directory.
Moved responsibility for converting values to SQL literals into ISQLType.
Updated SConstruct
Ripped out TypeMapper interface.
Fixed a bug in Any.
Fixed BelongsToType::make_literal
Better Result API
Added some static asserts to Any
Use save_or_throw
Stub ValidationErrors class.
Initial work on session support.
Unified serialization/deserialization/reflection API.

* Moved IType to Wayward Support.
* Added DataVisitor interface.
* Added persistence::DataAsLiteral for converting anything to SQL values.