Added BitmapCache

For performance reasons (to avoid constant GCs that cause jerky
scrolling).
Removed direct references to Card.RANDOM for equals

It was causing some wonky behavior due if the app ever needed to restart