Move usage docs out of README and into godoc.

Minor style updates to the prose.
Document Error type
Don't tolerate BindComplete after Parse + Describe + Sync

There's no real world scenario where this would happen.
Don't tolerate CommandComplete after Parse + Describe + Sync

Commit 13601feaf94cbd2df4a9b0b752150e08c5885f72 introduced this change,
(after being reported in issue #77), but the problem does not seem to
be with pq misbehaving; the test case itself is to blame.  It does not
correctly close the Rows object before attempting to operate on the
transaction again, which the "Extended query" mode does not like in
the slightest.

The TestRollback test also only tested the simpleQuery path, which
did not have a problem to begin with because it eats the
CommandComplete message from the server if the query returns no
results.  Get rid of the defective test case, and add a new one
testing an error response to the Parse message.
Keep track of the transaction indicator in ReadyForQuery messages

As witnessed in issue #67, previous to this commit pq was happy to
send a COMMIT in a failed transaction (effectively doing a ROLLBACK),
and return a nil error to the caller.  Although one could quite easily
argue that it's the caller's job to make sure that all queries in the
transaction succeeded, it's not really a good idea to return no error
in this case either.  Improve that by keeping track of whether we're
in a failed transaction (or indeed a transaction at all), and fail
explicitly if the caller tried to commit a failed transaction.  This
should also provide increased robustness over protocol-out-of-sync
problems.

It's a bit ugly to have to do this in every code path where a 'Z' is
expected, but the same is true for e.g. ignoring ParameterStatus
messages.  It would be nice to do better than this, but that's a job
for another day.
Check "command tag" after BEGIN, COMMIT and ROLLBACK

This provides additional security against protocol-out-of-sync
errors.  The parsing of the command tag should be similar to what
libpq does.
Fix types of transactionStatus constants
Add comment explaining what parseCommand does
Return ErrInFailedTransaction when trying to Commit a failed transaction

This seems nicer to test for, and can perhaps be used for other
operations as well.
Fix Tx.Commit

I managed to introduce a typo here in commit e4ff54f14cd479044e39,
which broke Commit quite badly.  The reason this went unnoticed for
this long was that there used to be no test case for transaction
commit; add one.
Add test cases for parseComplete

In passing, also improve comments in parseComplete.
Add comment explaining why we sometimes roll back in Commit

Sending a ROLLBACK here also preserves historical behaviour, sans the
return value.
Add some more test cases for parseComplete