Extend REST API for user preferences to set My menu items

PUT on '/accounts/<account-id>/preferences' now allows to set the menu
items for the 'My' top level menu. With this users can now completely
customize their 'My' menu.

The 'My' menu items are stored in the 'All-Users' project in the
'refs/users/<x>/<account-id>' branch inside of a 'preference.config'
file. The 'preference.config' file is a Git config file. Each 'My'
menu item is stored in a 'my' subsection where the subsection name is
the name of the menu item:

  [my "Change"]
    url = #/
  [my "Drafts"]
    url = #/q/is:draft

Unlike other user preferences the 'My' menu items are not stored in
the database because storing a list of menu items in a single database
field would be bad. In future other preferences may be moved into the
'preference.config' file as well.

Change-Id: I504c173695e3e7e9b5518b6723efa317b202d7a1
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
5 files changed