Rationalise relationship validation
The previous relationship validation was
1) throw a message is no valid employer relationship - this seems to be done
in a place that would make the site unusable I've centralised this check into a
cached function that gets the id & throws the exception & is used from
places previously fetching it (there is one that
didn't throw an exception previously but I think enough places did
that extending to that place would not break the site any more if it didn't exist
2) complicated look up to determine if the contact types match the relationship's
expectations. Since we already know the relationship's expectations we
can simplify this to just check contact a is an individual and b is an org which is
much more reasonable. It doesn;t seem like this would ever actually be false so
I added a deprecation to be a bit vocal if it is