All read/Cache write/Cache fields now padded.Int64

Previously these fields were plain int64 with the read, writeCache
adjacent and write, readCache adjacent in memory. This produced a slow
down, although it isn't completely clear why this occurs it is likely
related to excessive cache coherency traffic.
Adding performance tests for unsafe queues
Profiling  is now activated by the -profile flag

Previously every time we ran a performance test for the queue it
produced a profile file. This was a pain because we have to keep
deleting them.
Rm padded.CacheBuffer separating read/write fields

Previously we had a padded.CacheBuffer between the read, writeCache and
write, readCache fields. Because those fields are seperated from each
other by being inside a padded.Int64 field this is unnecessary.
Renamed CacheBuffer fields to _pre/mid/postbuffer

Previously they were _1, _2 and _3 which meant whenever we put another
buffer somewhere in the middle of the struct we would need to rename
all of the lower down buffers.