Adding support for all components necessary to add custom actions.

@philpennock @jfray 
This includes: custom media types, usergroups, attaching media to
users (via a usermedia resource), and creating custom actions
which are configured to send messages to a usergroup.

Action messages can be large, so those can be passed either as
a string (:alert_messge) or as a file reference (:alert_message_file)

Deleting all the same items are also supported.  Deleting a
non-existent item will not fail, instead I treat 'action :delete'
on a resource as asserting "this resource must not exist", so
if it already doesn't exist we just silently continue.  The
behavior of the existing user resource was changed to match.

Various find_* routines were added to the API library as needed.