Added Optional Cache Functionality

Added Optional Cache Functionality
It is using 'If-Modified-Since' & 'Last-Modified' headers.
At the time of this commit certain data such as profile & hero requests
do not honor 'If-Modified-Since' header and do not have a
'Last-Modified' header. Because of this and until Blizzard fixed this
'bug' not all data caches properly.

If this becomes a persistent issue and Blizzard does not fix it I will
develop a work-around.

This should close Issue #5.