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

- there was no standard way of checking for problems before calling the api: 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?**

- there was no documentation of how this wrapper of active_shipping got rates back to you, how it cached them and what units you should be using: 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**