Code clean-up based on real app usage

1) Remove references To ResultMetadata.h/.cpp not carried over from
MySQL
2) Add extractions for Any & Dynamic::Var
3) Allow Exceptions header to be included in code that does not link
with PostgreSQL directly (AKA remove #include <libpq-fe.h> from
PostgreSQLException.h
4) Provide name for NextState Enum and use enum Type name instead of int
5) Standardize on std::size_t as opposed to int
6) Allow Statement reuse by making sure to clear results between
statement executions
7) Fix Bug where the same statement placeholder would have to be listed
in multiple use calls (e.g. where X = $1 and Y = $1 required the same
use call twice as they were thought to be two different placeholders).
8) Switch away from -1 (int) for invalid values to 0 (std::size_t).