Added initial code for caching when decoding
Added decoders for basic types
Added map to map decoder
Added decoders for structs+maps+slices
Merge branch 'develop' into feature/cache_decoding

Conflicts:
	encoding/decoder.go
Started tidying pool code
Fixed the previous changes, driver now builds
Fixed tests and added BadConn errors to properly handle bad connections
Readded NoReply to Exec
Actually fixed noreply exec
Added bufio for reads+writes
Some bug fixes + performance improvements
Improved cursor performance by decoding the responses during next + using a more efficient data structure
Merge branch 'feature/cache_decoding' into feature/performance_improvements

Conflicts:
	encoding/decoder.go
	encoding/decoder_test.go
Merge branch 'feature/more_connection_improvements' into feature/performance_improvements
Fixed issues with tests
Fixed struct tags for WriteResponse
Reverted type sensitive keys change to mapToStruct decoder