Added LRU Cache for Prepared statements to prevent memory leaks

This is the third attempt at issue #184. This merge request uses the groupcache/lru package as an external dependency since the implementation in the package is simple and generic enough to use out of the box inside gocql.

I have written a few integration tests. Please let me know if these tests are insufficient and I can try and expand on them some more.
I think for the sake of cleanup in conn.go I am going to move the initialization code to Session.CreateSession right when the code tries to size the cache that way it is evident in the beginning at the first access point of the prepared statement cache and not tucked in the top of conn.go file. Also should I move the global reference of the stmtsLRU to session.go?