supermarket_instance resource

An HUGE PR that creates specs of all sorts and the actual supermarket_instance itself.
I have a few issues with this:

* Can't we just use a LWRP resource class to mark these are required rather than writing code to do it?
* I kind of think the resource shouldn't care about these particular attributes at all and they should just be part of the config hash. I understand what the intention is, but making exceptions for these particular attributes seems like it makes the whole thing more confusing. My feeling is that less code and more documentation would be better.