Check that get_role returns an appropriate value.

If the role has been removed and get_role returns null, the current code would fatal. Check that get_role doesn't return null then go to work on the role.
i18n fix
Use the "supportflow_after_setup_actions" action to initiate actions.

In order to bring the SupportFlow_Permissions class in line with the rest of the Support Flow code, use the "supportflow_after_setup_actions" to initiate actions.
Moar i18n fixes
Updated custom capabilities to better align with WordPress standards.

In the initial capabilities work, the "others" capabilities were completely ignored. In order to properly determine who has access to what, these "others" capabilities need to be considered. The following 4 capabilities were added:

* sf_close_others_threads
* sf_open_others_threads
* sf_reopen_others_threads
* sf_comment_on_others_threads

These 4 capabilities were added to the administrator and editor roles (and super admins also get these capabilities without any code changes).

This commit also changed previous capabilities to make them plural (e.g., sf_open_thread was changed to sf_open_threads) to better align with WordPress conventions.

See #55.
Added Date Opened, and Last Activity details to the Details sidebar widget on view Discussion page. Added styling to reveal the widget handle as well
Create Thread: New threads must have subjects

See #52
Merge pull request #79 from innerbot/upstream

Added Date Opened, and Last Activity details to the Details sidebar widg...
Fix error "Undefined variable"

See #79
Spacing fix
Manage Threads: Apply the most recent public comment as the excerpt for mode=excerpt

Closes #26
Make permissions class more efficient and maintainable.

Instead of declaring a property for each capability, I have added all of them to a single array. Additionally, another property has been added for mapping roles to capabilities. This makes updating the roles and capabilities much simpler than in previous commits.
Added shortcut function for getting a capability name.

Instead of requiring the user to type execessively to get the internal name of a SF capability, a simple get method is provided.
Manage Threads: The count for 'All' shouldn't include the closed status

See #61
Merge pull request #78 from SupportFlow/user-capabilities

User capabilities updates
Permissions: We don't need this named function for now

See #78
Permissions: Filters should just be named explicitly
Initial handling of attachments

First draft at the handling of attachments. Grabs the message structure, processes the part containing the attachment data, creates a new temporary file, then sideloads it into WordPress.

The next step will be to dynamically handle the structure of incoming attachments properly as it won't always be one jpeg.
Improved handling of incoming attachments

Attachment data is now processed dynamically. This allows for multiple file types, proper file names, and multiple attachments in one email.

There is no strict checking, so the code will need to be tightened up a bit before we can trust it. Also need to associate the new attachment IDs with comments in addition to the threads for better interface display.
Do some checking to make sure the object we're working with is valid enough