Re-privatize user profile edit buttons

The user profile edit buttons were mistakenly un-privatized (11/5/2013). Other users could see the buttons, but server checks prevented any changes. Now the buttons are once again visible only to the owning user.
Merge pull request #1156 from RickMohr/reprivatize-user-profile-edit-buttons

Re-privatize user profile edit buttons
Support API signing instead of passwords

Passwords can still be provided if the request was signed
via a "user-less" key, otherwise the API requests are bound to the
user specified in the API credential

Also, removes "api logging" as part of a general cleanup

Note that testing also uncovered an issues with sessions not always
existing. This was fixed by first checking for the session (see
treemap/util.py:52)
Move a couple of static endpoints to the "new style" decorators
Torch the geocoder endpoint

Both mobile apps use other geocoders
Merge pull request #1154 from OpenTreeMap/topic/api-signing

Support API signing instead of passwords
Add "user roles" endpoint to the API

Much of this code was moved from the management app
Hide email addresses if requested by the user

If the `allow_email_contact` flag is false user exports will return not
return the email address.

However, many external clients would like to sync data between OTM and,
say, salesforce. We provide the `email_hash` field which is a sha256
hashed version of the email. This can be used to match up emails to
existing databases without exposing the user to undue privacy issues.
Merge pull request #1155 from OpenTreeMap/topic/user-roles-endpoint

Topic/user roles endpoint
Add API support for updating users
Remove extra cruft
Add endpoints for profile photos
Add context for mandatory fields

Fixes #1136
Show first name, last name and organization

Fixes some typos from the original code.

Fixes #1134
These are included in node proper

Fixes #187
Return a 404, not a 500 on a verb mismatch

Fixes #1101
Reload tiles when adding a tree

A regression occurred when adding map features. The main issues is that
the geo rev count is updated by a database trigger, thus invalidating
any existing objects. Since we want to return the update geo rev, we
need to requery the instance.

Fixes #1152
Enable all of the diameter fields

Fixes #1144

We can't cache the result of the "$editControls" selector since it
changes dynamically. So we just look them up as needed.
Merge pull request #1164 from OpenTreeMap/fix/1144/enable-all-for-fields

Enable all of the diameter fields
Merge pull request #1163 from OpenTreeMap/fix/1152/reload-layer-on-add-tree

Reload tiles when adding a tree