symboldb_options: Use C++11 member initialization
cxxll::pg_valid_identifier: New function
symboldb_options::create_database(): New member function

Is allows us to unify the database creation procedure and prevents
accidential access to other databases.
Use symboldb_options::create_database() as a factory
database: Make non-copy constructors private
cxxll::pgconn_handle: Use a shared pointer and hide the implementation

This is required for the safety of prepared statements, which will
implemented in a following commit.

This commit changes the return type of pg_testdb::connect() as well.
cxxll::pgconn_handle: Move result-creating functions from pgresult_handle
cxxll::pgresult_handle: Remove release(), reset(), close()

These member functions are no longer required.
cxxll::pgconn_handle::describePrepared(): New member function
cxxll::pg_private::pg_prepared_base: Use pgconn_handle::describePrepared()
cxxll::pgresult_handle: Make constructor private

It is only used from pgconn_handle now.
cxxll::pgconn_handle::setNoticeProcessor(): New member function
cxxll::pg_testdb: Use pgconn_handle::setNoticeProcessor()
cxxll::pgconn_handle: Remove access to the native pointer
cxxll::pgresult_handle::check(): Remove unused member function
cxxll::pgresult_handle: Members nparams(), paramtype(), fformat(), ftype()

Their libpq counterparts are currently called directly and thus
require access to the raw result pointer.
Eliminate access to the raw PGresult *, using pgresult_handle instead
cxxll::pgresult_handle::get(): Remove
Implement --db-schema option
database: Introduce additional prepared statements