* Keep save bar visible as long as there's a customer form displayed.
* Only display "You have unsaved changes" when there's any difference
from the original values. If form changes are reverted, hide that
note.
* Similarly, only let the button be enabled if there are any actual
changes to be saved.
The scope for customersCtrl did not have access to the sorting
preferences stored in the nested ColumnsCtrl scope. To address this,
the page has been changed to use a new set of sorting preferences
declared in the customersCtrl scope itself.
Also, these sorting preferences are now stored in an object. This
enables the parent scope to see changes to the sorting preferences which
are done via the nested ColumnsCtrl scope,
The "Bulk Order Management" page is also affected by the same scoping
issue. Once this page is fixed, we can remove remnants of the sorting
preferences initialized in ColumnsCtrl.
Angular's filter function uses a pattern object to filter specific
properties on objects contained by the array. We want an exact match
instead, which has to be done by means of a function.