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.
Merge pull request #10 from abergeron/add_cache

Add cache for extcopy
Merge pull request #11 from abergeron/add_ger

Add ger to the supported bindings.
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.
Merge pull request #13 from abergeron/add_ger

Finish ger and add a test.
Add first layer of gemmBatched
Pass the proper arguments to gemmBatched().
Make gemmBatched work finally.

(Could the cublas docs make any more effort to not mention that the arrays have to be GPU memory?  Clearly nobody needs to know that.)
Batch the allocations and transfers to try to be faster.