call compute_<computable> so we can enforce the calculator supporting dynamic compute methods

Related to #4041
always expect a computable object remove the (almost) duplicate code and raises.

Related to #4041
improve exception when the compute_<something> method is not implemented.

Related to #4041
raise the proper message so developers will get information where to implement what.

Related to #4041
update comments on the compute method

Related to #4041
the case statement is no longer needed since we call the proper method automatically.

Related to #4041
make sure we save the original caller to show the correct calculator path when the method is not implemented.

Related to #4041
use a proper PORO instance instead of a double (otherwise it wants to calculate compute_mock) make the shipping calc specs green

Related to #4041
use the correct class name in the message. The caller is not returning the subclassed calculator.

Related to #4041
do not automatically call to_package on compute_shipment improve the error messages in shipping_calculator as well.

Related to #4041
improve the specs to better document the shipping_calculator

Related to #4041