Application Improvements

Deviated from book UI and made this thing look decent. Improved data
updating by using deferred/promise patterns, which is different from
the book. Modified updating of contacts to bubble up updating events
all the way to the contact.js file where the CRUD API is located,
instead of delegating the model.save() operation to the edit
controller. All CRUD ops should occur through the CRUD API and not
through the controllers