Switched to using a Promise API for data methods.
Turns out that the promise api requires a require.
Re-arranged the source structure a bit.
Did some more promise re-working in the service layer.
Fixed up some bits I missed in the mail service. Still needs a little love.
Moved tests to the right place, and threw in a small tweak.