check if a package is shippable on available?
this change makes it easier for people to create their own calculators
and stops errors from happening when they previously forget to call
is_package_shippable? inside compute_package, there currently is a lot
of logic inside compute_package and the cleaner we keep it the better.

fixes #164
fixes #171
make sure we check for nil values first
else zero? will fail