Rewrite prepared query parameter substitution.

Francisco,

I finally got around to rewriting the prepared query parameter substitution stuff.  All parameters are now subbed with one scan only.

I haven't tested this real well.  All the tests pass, but I haven't done any benchmarking or any real testing outside of that.  I wanted to get it pushed up for review first.

I also want to get the simple query parameter substitution moved to this new code, too, but the new code works with strings still, and getting it to work on the byte[] will be a bit more work. So far it's pretty well contained, so it shouldn't conflict too badly with other PR's, but going to byte[] will spread the changes around a bunch more.

-Glen