Bug Fix: Issue #141, ConnectionString: "AlwaysPrepare=true" not always honored

Fix NpgsqlCommand not always picking up the AlwaysPrepare connection string option.
Command Timeout Code

Re-purpous and rename the timeout value on Mediator to track the backend's statement_timeout setting.
Remove that tracking value from Connector.
Rename Connector.CommandTimeout to DefaultCommandTimeout, which is really what it is.
Factor statement_timeout set code into its own function on Connector.
Remove a bunch of spots that constantly set/reset Mediator.Timeout.
Give the timeout tests a little more breathing room since they were failing intermitently.
Add timeout tests to make sure timeouts don't happen too soon.
NpgsqlException

Lighten NpgsqlException slightly by using NpgsqlError[] instead of IList.
Improve type safety by using IList<NpgsqlError> instead of the non-generic version.
Incremented copyright year to 2014
Last Command Sent Improvements

Store last command sent for extended queries, too.
Decorate last query sent depending on how it was sent and what it was;
  A query can be simple, a parse or prepare command, or execute a prepared statement.
  On execute prepared, keep the actual prepare command.
Mediator.ResetResponses() became useless; remove it and all references.
Create NpgsqlQuery classes for protocol version 2 and 3.
Set last query sent in NpgsqlCommand, not NpgsqlQuery.
NpgsqlCommand.ExecuteBlind()

ExecuteBlind() is now static, eliminating all NpgsqlCommand instantiation overhead.
Fix comment that matched nothing.
Code simplification

Factor out duplicated ExecuteBlind() code.
In ExecuteBlind(), move connector.SetBackendCommandTimeout() into the locked section.
Fixed wrong comma putting in AddFunctionColumnListSupport of NpgsqlCommand.Rewrite
Support for EFMigration and Database creation in EF6+
Setting default value in case of NOT NULL
Support for default empty byte array and removed rowversion from setting default updated tests
Cleanup

Eliminated all 1591 warnings by converting Java doc comments to xml, writing a few good comments, a lot of stub comments, and by supressing 1591 for a few entire files.
In CopySerializer, change a few public writable static strings to const.
Protocol Version 2 Support Removal

Remove support for backend protocol version 2.
Optimize NpgsqlQuery for re-use.
Introduce a number of static NpgsqlQuery objects for often used internal commands.
Merge pull request #153 from tyler-nguyen/master

Fixed wrong comma putting in AddFunctionColumnListSupport of NpgsqlCommand.Rewrite
Fix previous commit

isFirstOutputOrInputOutput was declared within the loop, needed to be moved out.
Cleanup

In CopySerializer, convert the huge conditional chain statement to a switch; a little faster, and a lot more readable.
Bump version to 2.1.0-rc1
EF Migrations unit tests use connectionStrings provided by TestBase instead app.config
Adding EFTestBase for EntityFramework tests