refactor get_case_properties

puts functionality in a helper class that exposes other similar useful calculations,
namely getting a list of parent case_types, without redoing work