Initial port from integrated extension

This extension was developed in an existing spree app. This commit moves
all the current files to an external extension so I can share it with
the Spree community.