api: Rename Log.info to .properties.

Refs #2375.
api: Make a Log from other model changes.

Refs #2375.
Merge branch 'master' into 2375-log-table
api: Test that we don't make logs about logs.
api: Let admin users delete logs.
api: Have users own the logs they generate.

Setting the owner to the system user was intended to provide the
security policy we wanted.  Now that we've opted instead to give logs
overrides for the permission_to_ACTION methods, users should own their
own logs so they can read them.
api: Raise errors from saving logs.

With this change, I realized it'd be cleaner to write the
implementation as after_* callbacks, so this includes that.  But the
fundamental change is to use log.save! instead of plain log.save.
api: Don't log common changes to API tokens.

The last_used_* attributes are updated very often.  Logging those
changes would probably make the logs less useful.
api: Improve test for selective API auth logging.
api: More robust tests for log properties.

This ensures that logs always have the old/new_etag/attributes
properties, even if they're expressly set to nil.
api: Don't include API tokens in logs.

Refs #2375.  See Tom's comments.

I also renamed UNLOGGED_ATTRIBUTES to UNLOGGED_CHANGES to help clarify
that it's not used by logged_attributes.
Merge branch '2375-log-table' into master

We add a log to the Log table whenever another model is created,
updated, or destroyed.  Closes #2375, #2559.