* Refactor user's device assignment logic
* Extract device assignment logic into app methods
* Move device retrieval into control flow
* Move un\assign logic into control flow
* Extract mobile callflow update into own function
* Patch device owner_id instead of full update
* Move mobile callflow id retrieval to control flow
* Patch callflow to avoid having to retrieve it first
* Consolidate un\assignment logic
* Migrate single-used app methods into closure
* Extract mobile callflow update logic into app method
* Run device patch and mobile callflow update in parallel
* Move back device assignment logic to users module
* Consolidate mobile callflow update w/ user callfow fetching logic
* Update linked callflow on mobile device un\assignment
* Refactor entities update logic on device un\assignment
* Hide device form on user creation if there aren't provisioners
* Prevent request if there no provisioner API
* use appFlags to looks for valid provisioner
* Hide device form on user creation if there aren't provisioners
* Prevent request if there no provisioner API
* use appFlags to looks for valid provisioner
* Fix linting error + use lodash#oderBy to sort descendingly
* Check if service plan exists before user count increment
* See if user types are available when sorting users
* Move sub-module templates in their own `views` folder
By using `getTemplate()` we can specify which sub-module a template is
related to, enabling this behavior.
The templates names were shortened by stripping the name of their
sub-module from it since they are stored under their sub-module folder.
String templates are created using `getTemplate()` instead of
`monster.template()` that we are trying to depreciate.
* Only use `getTemplate()` for both regular and string templates