Refactored everything to use new Error factory
Added support for detailed canexecute failures
Added forwarding of reasons for invalid actions to client
Merge remote-tracking branch 'origin/2-Better-Error-Messages'

Conflicts:
	app.js