Sync App List (Launcher) folders.
This CL also:
* Makes AppListSyncableService observer AppListModel instead of its
  item list (and adds relevant observer methods to the model).
* Protects Add/Remove/Delete methods in AppListItemList, making
  AppListModel solely responsible for adding and removing items
  from the primary list or any folders.
* Adds folder support to AppListModel.
* Fixes some edge cases in the app list sync code exposed in testing.

Patchset 5+ depends on https://codereview.chromium.org/148403007/

BUG=335761
For sync integration test changes:
TBR=zea@chromium.org

Review URL: https://codereview.chromium.org/147743002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248079 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 248079