LRU cache implentation using a hash table and a double-linked list.

Average retrival time (with pre-computed hashes) is around 3e-6s.  If that proves to be too slow there might still be micro optimizations to do, but the algo is probably as fast as it will go.
Use the cache in cuda_extcopy().
Apparently to avoid a massive slowdown we do need to create the event without the CU_EVENT_BLOCKING_SYNC flags.  I've made it conditional on GA_CTX_MULTI_THREAD for now, but we might avoid it entirely if the cost is that great.

I'd rather burn a few CPU cycles to spin while waiting for an event than have the whole program take 2x the time to execute.
Add cimport of pygpu_zeros since we are using it.
Fix dimensions setup for return matrix creation.
Add order handling for ger in cublas.
Add test for blas ger.
Pass the proper arguments to gemmBatched().