Added cache support

Hi, I added cache support for sitemap.

Here is how it works:

We have 2 methods to configure it: 
- configuration file
- via method setCache (this method has priority over configuration file, so we can override it if we needed to)

When cache is enabled it checks for items in cache, if no items found it adds current items to cache,

I moved all the variables to a separate file called Model to have better organized code.

Also you may notice that I have added Carbon dependency to composer.json because I am using it for converting cache duration int value to time stamp.