Improve transferring stock between two stock locations
- Refactor controller method and move the work to the stock location
  model
- Don't allow a transfer to occur if the source location doesn't have
  enough inventory