LPS-43574 Introduce PortletSettings object to represent the settings of a portlet along with a hierarchy of default values that may exist. Provide methods to obtain and set the portlet settings at three different levels: company, site and portlet instance (layout)
LPS-43574 Add support for customized portlet instance configurations in customizable columns
LPS-43574 Unit tests of PortletSettings subclasses

(Designed with and reviewed by @mdelapenya)
LPS-43574 Integration tests of PortletSettingsFactory
LPS-43574 Add @Override to fix Eclipse warnings
LPS-43574 private methods start with _
LPS-43574 Minor SF
LPS-43574 protected methods don't start with _
LPS-43574 Fix usage of super
LPS-43574 Match with PREFS_OWNER_TYPE_GROUP_DEFAULTS_COMPANY, it's called a Group there and not a Site. Over the years, we've renamed Site many times while keeping the word Group as the backend word.
LPS-43574 Auto SF
LPS-43574 Not the prettiest, but more clear since I initially thought it might have been for a Company / portal instance
LPS-43574 Rename
LPS-43574 Rename
LPS-43574 Rename
LPS-43574 Sort
LPS-43574 Consistency with setPortalProperties where the set var is the same name. So now we have to use this.*
LPS-43574 SF
LPS-43574 This should never happen, but if it did, it would be good to output an error message
LPS-43574 SF