Fix the cached_property (access via class) and checks for "own" attributes.
Refactor some utility code to a compat module.
Wasn't necessary.