Native to backend converter optimizations

Add backend converter for string text representation, with full escaping and quoting logic built in.
Build quoting into the bytea text backend converter.
Push the array element quoting and escaping down to the native to backend converters.
Remove arbitrary escape scanners, as only text and bytea should ever need escaping.
Cleanup

Remove a bunch of reduntant code.
General cleanup.
Bugs, tests

Fix bugs in bytea texr encoder on <= 8.4.
Add tests, make a couple others more rigorous.
Improve variable names for readability.
Merge branch 'master' of https://github.com/franciscojunior/Npgsql2 into backend_encoders
Add a test, and increase rigor on a couple others.
Fix test that claims to Prepare(), to actually Prepare().
Add a test for zero-length bytea.
Fix backend to native bytea hex format decoder to work on zero-length data.
String and bytea text format encoders

Re-write the string and bytea text encoders for readability.
Fix bug from previous commit that caused the encoders to fail against PG <= 8.4.
Escape raw text before UTF encoding, not after; after doesn't work on multi-byte data.
Remove unneeded code (turns our, "\x" is a valid zero-byte bytea value).
Tests

Modify CreateSchema() to work on PG < 8.2.
Add speed tests.
All speed tests now run for a centrally configured amount of time (currently 10 seconds), rather than a preset number of iterations, and report total queries executed and queries/second.
Add test for decimal arrays.
Backend encoders

Fix bug with quoting array elements of types such as DateTime and Decimal.
Remove unused parameter.
Add bytea and decimal array speed tests.
Pr-allocate destination buffer.
Avoid calling char?.Value over and over.
Merge pull request #72 from glenebob/backend_encoders

Optimization

The main benefit of this PR is that it eliminates unneeded arbitrary string value escaping. This is particularly nice with bytea encoding, as the entire encoding operation, including quoting, is done in one scan, eliminating at least one potentially large copy operation. It also eliminates arbitrary escape scans on all types other than raw text (no need to escape a Timestamp value, for example). With arrays, the extra quoting and escaping operation that was being done in ArrayHandling.cs is now eliminated.

-Glen

Add backend converter for string text representation, with full escaping and quoting logic built in.
Build quoting into the bytea text backend converter.
Push the array element quoting and escaping down to the native to backend converters.
Remove arbitrary escape scanners, as only text and bytea should ever need escaping.
Merge pull request #75 from glenebob/tests

Tests

I added some speed tests and made them all run for a certain length of time, rather than a certain number of iterations. Now you can run them against a local PG or one out on the Interwebs without having to mess with iteration counts.

I also made the tests able to work on < 8.2 again. We get a lot of test failures the further back you go, but it's still quite useful.

-Glen

Modify CreateSchema() to work on PG < 8.2.
Add speed tests.
All speed tests now run for a centrally configured amount of time (currently 10 seconds), rather than a preset number of iterations, and report total queries executed and queries/second.
Add test demonstrating bug in datetime array encoding.
Ignore DateTimeArray test, add comment explaining it.