Added a general class for remote APi resources and made products and keys a subclass of that
now only sets as dirty if attribute value differs from original value
added activation pro license object and test file