Split State into two.
Split State into two.

There is no reason for the buffer and typeinfo caches to share the same
lock. By splitting them it means we a) get slightly better performance,
but more importantly b) it makes it harder to accidentally deadlock.

sfackler/rust-postgres,sfackler/rust-postgres