Clarify weight units, make sure we are using oz in the calculators and move the available logic to the base class

I found this problems while in production and I think must can agree they are a big problem:

- I made sure the calculators where using the correct weights on their limits, I checked each on usps and verified that we where comparing oz to oz, and changed the limits on some international calculators that where using lb, causing us to compare lb = oz

- the available? method was being used to compare weights on some usps calculators which is a step the compute_package needs to take, also those checks where using the package.order.line_items instead of the package.contents which caused for bigger weights than we should be getting

- added a check on compute_package that checks for problems that we know the service will have once we call them, this will help avoid unnecessary api calls, right now the only check I added was the max weight for country, but more can be added there, the private method name is called ** is_package_shippable?**

- added notes to the README clarifying how this works in hope of getting more attention and helping people debug better, I made sure we specify the units we are using and how you should be expecting to get them converted to **oz**