Better logging and statuses, cleaner movement controller

# Why?

 * We had a lot of duplicate code in the controllers
 * We were constantly hitting APIs because none of the resources were shared across controllers
 * We had no logging mechanism
 * We had no status mechanism

# What Changed?

 * Moved device logic into service
    * No more API hits every time the user changes pages!
 * Created a logging mechanism (not done) 
 * Put in a status indicator (but not at the UI level yet)