Add support for "Always Prepare"

Add connection string value "AlwaysPrepare".
Implement "AlwaysPrepare" support on NpgsqlCommand.
Refactor Prepare code so that calling Prepare() from within GetReader() avoids redundant sanity checks.
When a previously prepared statement command text is changed, automatically re-Prepare (if needed) before the next Execute.
Complete implementation of "ApplicationName" connection string value (I hope).