Fix: Allow a default_weight of zero

A default weight of zero doesn't throw a divide by zero error anymore.  Added a test condition for it.

Signed-off-by: Nathan Lowrie <nate@finelineautomation.com>
Added the ability to define a max weight per package.

The max weight per package is useful if you want to

a) limit package weights so they don't go above carrier limits like UPS's 150lb limit.
b) have a company rule that splits boxes after a certain weight.

It is implemented to respect the countries max weight if that happens to be lower.

Signed-off-by: Nathan Lowrie <nate@finelineautomation.com>

Fixes #48
Add Product Package functionality

Product Packages are a way for products that ship in there own packages to be defined properly for shipping estimates.  It is extremely useful for certain cases like a 200 lb product that ships in 5x 40lb boxes because 200lbs throws a UPS ship error.  This commit includes the ability to enter product packages through the admin interface.

The calculator now includes product packages in it's base calculation.  The user can now enter packages for a particular product and have those packages be used in the base freight calculation.  The calculator checks the products for over weight limit packages and will raise an error if the packages weigh too much.

Signed-off-by: Nathan Lowrie <nate@finelineautomation.com>

Fixes #55
Properly nest db folder.
When Spree::ActiveShipping::Config[:shipper_number] is "", an empty ShipperNumber node is added to the request, resulting in a "Missing/Invalid Shipper/ShipperNumber" error response from UPS.

By adding .presence, we can have it treat a "" value as nil so that it will skip adding the
ShipperNumber node when shipper_number is "" instead of treating "" as a truthy value.

Fixes #57
Including activeshipping in the gemspec
Update show.html.erb

Removing duplicate FedEx display from configuration

Fixes #59
Use Engine.routes.prepend

Instead of Engine.routes.draw so that Spree core routes are always
loaded first

[Fixes #68]
removed raise ShippingError from compute, fix #90
moved Error logic to the Order model on rate_hash
Merge pull request #91 from mrpollo/1-3-stable

removed raise ShippingError from compute, fix #90
usps api name changes fix #103
moving from matching service names (desc) to checking for service codes
in order to achieve this it was necessary to override compute and
retrieve rates from Spree::Calculator::Shipping::ActiveShipping::Base on
Spree::Calculator::Shipping::ActiveShipping::Usps::Base
I added a service code paramter to all the usps classes and made sure
it was the correct id, please refer to this issue for further
explanation: https://github.com/spree/spree_active_shipping/issues/103
Merged in change to hopefully have spree price fetching up to date