Additional can?'s in product admin

* Hide new/edit/clone/delete product links if they are unauthorized
* Hide any tabs from the product sidebar which are unauthorized

Allows fine grained control over which actions on a product are
permitted.
This already worked properly through use of authorize! in controllers.
However this left dead links to unauthorized pages.

Additional can?'s in Order admin

* Hide new order button if unauthorized
* Hide events, resend button if unauthorized

custom_authorization! test helper

Creates a new custom_authorization! test helper to aid in defining
custom cancan rules within test cases. Replaces existing uses of
stub_bar_authorization! with custom_authorization! and explicit rules.

Feature specs of hidden unauthorized links

Fixes #3469
Add require spree_sample to spec helper to prevent failure when running build.sh.
Store tax category on line item

Fixes #3481
Remove duplicated order dir under core spec/models
Recalculate taxes after promo adjustments applied

Introduce three new methods to OrderUpdater (update_promo_adjustments,
update_shipping_adjustments, update_tax_adjustments) and make the order
tax an open adjustment so it can be recalculated after a promotion is
applied.

This should make taxes value more accurate when promo discounts are
applied on the order level