remove not null constraint from user_schedule_layers.position column
Big refactors to enable merging the web interface

* moved API to /api route namespace
* voice, sms, mail, and provider to Integration namespace
* replaced state_machine with simple_states
* replaced acts_as_tenant with tenancy gem
* replaced devise with basic warden
* created new controllers/routes for web ui
* simplified and generalized event publication▫

Bonus:
* faster, more isolated unit tests
* Guardfile fixes
* ???
reorganize model code
put attributes below associations
unique token helper; renamed concerns, moved to app/models
move publishing from Event into Publisher class; more service objects
remove dead code from Event model
Merge branch 'dashboard'