Refactor: Moved functionality to subclasses.
Added cache_for_read  for improving performance
Rescue when calling ancestors because the values stored in ES can be invalid and  ascendants_of_in_hierarchy raise an exception if the parameter is invalid
ascendants for hierarchy fields was not returning the same when cache_for_read was on