PCacheException can now pass along the exception

Adding new constructor that takes the exception that was raised (if
caught) so that it can be bubbled up along with the custom message
Fixing whitespace issues with struct definition

Whitespace used to be a problem if the structure was defined with a
space and then an instance was added to that structure without a space
and the like, this fixes it.
Added thorough documentation to the CacheEngine

A lot of methods are yet to be added, so this is still a major WIP.

Updating the Main method to reflect the changes made in the cache engine