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).
Add test for decimal arrays.
Backend encoders

Fix bug with quoting array elements of types such as DateTime and Decimal.
Remove unused parameter.
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.