LPS-33059 Igor missed one
LPS-31791 New method to check if one user is an Organization Owner
LPS-31791 Site/Organization Administrator can remove role or membership for other Administrators or Owners user from Site/Organization
LPS-31791 source formatting
LPS-31791 Integration Tests
LPS-31791 source formatting (tests)
LPS-31791 Slight performance improvement
LPS-31791 This shouldn't be in GroupPermission* or OrganizationPermission*, in general, those deal with something that can be done on a Group or Organization, but in this case, ti's really done on a "User" since a User has membership in a Organization, and not the other way around. Moving it into MembershipPolicy also makes isMembershipProtected match nicely with isMembershipAllowed.
LPS-31791 It also allows us to simplify by removing unnecessary methods.
LPS-31791 Apply
LPS-31791 Source formatting
LPS-31791 Move *TestUtil to follow pattern in BlogsTestUtil and BookmarksTestUtil and many other *TestUtil
LPS-31791 Consistency. 1.) Use ServiceTestUtil.randomString and not Random. 2.) Minimize differences in names of created objects. Sometimes we created a new group with the name "site", sometimes we created it with a random String. Always use a random String unless we need a specific name. 3.) Instead of operator user and updated user, I called it subject user and object user based on http://grammar.quickanddirtytips.com/subject-and-object.aspx (I love you - *I* is the subject, and *you* is the object).