Controller/sales

Split the sales controller into two commits. First are updated tests for the Sale model; second are requests specs testing the routing and json api.