Initial commit to get notifications wired up

in the middle of working out audience link-ups to assign fetch functions to user groups as they pertain to action triggers.
Notifications Persisting
Re-architected flow

Notifications were rearchitected to take better use of config files and apply service functionality to make it more modular. Service skeleton created to inject functionality in multiple places during the delivery process.
Re-architected flow

Notifications were rearchitected to take better use of config files and apply service functionality to make it more modular. Service skeleton created to inject functionality in multiple places during the delivery process.
Small fix to file

notifications.ex.js failed to correctly amend
Merge branch 'sprint9-feature-notifications' of https://github.com/Innovation-Toolkit/midas into sprint9-feature-notifications
Rudimentary Comment Reply Email

Major push fleshing out a good deal of configuration infrastructure and helper services. Defined a mechanism along with a (terrible) starting template for comment reply emails. I have minimally tested it and verified that it works.

Comment controller has been modified so that the helper functions, which have consumable potential in other areas, are more globally available.
small fix for error handling

Small fix that updates error handling in the case where a user does not have an email loaded into their profile or the smtp settings have not been entered.
Last polish for notification

Last bit of polish put on notifications. Refactored to code to be more readable and pass-through in the case of errors as notifications should not be critical to normal site behavior. Added comments to code as well.
Changed a few small oversights

Prior commit would not work without the config changes posted here.
Fleshed out Notifications with priority enhancements

Large update that fixes major bugs with existing functionality, adds infrastructure that exposes more options for customization, and implements email notifications for priority 1 items.

Bugs
* emails were sent out erroneously when users failed to enter their profile info
* lack of distinction between audiences in delivery generation meant that all users would have to be notified of an action identically rather than receive a custom email related to their role in the action or entity acted upon

Enhancements
* Enhanced email and notification configurations to structure data in a deeper fashion, allowing for more customization options
* Added more content to configurations and services so that more actions are able to be triggered
* Added triggered email actions to projects and tasks upon commenting and volunteering
* Added email controller to return mailto link for client-side href generation. Eventually this will be an option along with server-side html email
* Added ability to generate prefilled text emails for profile, project, and task pages
Fleshed out Notifications with priority enhancements

Large update that fixes major bugs with existing functionality, adds infrastructure that exposes more options for customization, and implements email notifications for priority 1 items.

Bugs
* emails were sent out erroneously when users failed to enter their profile info
* lack of distinction between audiences in delivery generation meant that all users would have to be notified of an action identically rather than receive a custom email related to their role in the action or entity acted upon

Enhancements
* Enhanced email and notification configurations to structure data in a deeper fashion, allowing for more customization options
* Added more content to configurations and services so that more actions are able to be triggered
* Added triggered email actions to projects and tasks upon commenting and volunteering
* Added email controller to return mailto link for client-side href generation. Eventually this will be an option along with server-side html email
* Added ability to generate prefilled text emails for profile, project, and task pages
added further refinements and added comments

*Added comments to add clarity
*Removed UserNotification model to reduce persistence footprint and make notification process more efficient
*Fixed a bug with email notification delivered to project owners on new topic creation
*Changed console.logs to sails.log.debugs
*Removed href-specific newline characters in email text templates
Merge branch 'sprint9-feature-notifications' of https://github.com/Innovation-Toolkit/midas into sprint9-feature-notifications

Conflicts:
	api/controllers/EmailController.js
	api/models/Comment.js
	api/models/Volunteer.js
	api/services/notifications/audience.js
	api/services/notifications/dispatcher.js
	api/services/notifications/manager.js
	api/services/notifications/notification.js
	api/services/utils/comment.js
	api/services/utils/lib.js
	assets/email/layouts/default/text.ejs
	assets/email/templates/contactUserAboutProfile/text.ejs
	assets/email/templates/contactUserAboutProject/text.ejs
	assets/email/templates/contactUserAboutTask/text.ejs
	assets/email/templates/projectCommentOwnerReply/html.ejs
	assets/email/templates/projectCommentOwnerReply/text.ejs
	assets/email/templates/projectCommentParentReply/html.ejs
	assets/email/templates/projectCommentParentReply/text.ejs
	assets/email/templates/taskCommentOwnerReply/html.ejs
	assets/email/templates/taskCommentOwnerReply/text.ejs
	assets/email/templates/taskCommentParentReply/html.ejs
	assets/email/templates/taskCommentParentReply/text.ejs
	assets/email/templates/taskVolunteerAddedOwnerReply/text.ejs
	assets/js/backbone/apps/profiles/show/views/profile_show_view.js
	assets/js/backbone/apps/project/show/views/project_item_view.js
	assets/js/backbone/apps/tasks/show/views/task_item_view.js
Merge branch 'sprint9-feature-notifications' of https://github.com/Innovation-Toolkit/midas into sprint9-feature-notifications

Conflicts:
	api/controllers/EmailController.js
	api/models/Comment.js
	api/models/Volunteer.js
	api/services/notifications/audience.js
	api/services/notifications/dispatcher.js
	api/services/notifications/manager.js
	api/services/notifications/notification.js
	api/services/utils/comment.js
	api/services/utils/lib.js
	assets/email/layouts/default/text.ejs
	assets/email/templates/contactUserAboutProfile/text.ejs
	assets/email/templates/contactUserAboutProject/text.ejs
	assets/email/templates/contactUserAboutTask/text.ejs
	assets/email/templates/projectCommentOwnerReply/html.ejs
	assets/email/templates/projectCommentOwnerReply/text.ejs
	assets/email/templates/projectCommentParentReply/html.ejs
	assets/email/templates/projectCommentParentReply/text.ejs
	assets/email/templates/taskCommentOwnerReply/html.ejs
	assets/email/templates/taskCommentOwnerReply/text.ejs
	assets/email/templates/taskCommentParentReply/html.ejs
	assets/email/templates/taskCommentParentReply/text.ejs
	assets/email/templates/taskVolunteerAddedOwnerReply/text.ejs
	assets/js/backbone/apps/profiles/show/views/profile_show_view.js
	assets/js/backbone/apps/project/show/views/project_item_view.js
	assets/js/backbone/apps/tasks/show/views/task_item_view.js
Merge branch 'sprint9-feature-notifications' of https://github.com/Innovation-Toolkit/midas into sprint9-feature-notifications
Merge notifications into sprint9

Clean up files to match Google style guide

Change indents to spaces, and standardize on 2 spaces

Merge branch 'sprint9-feature-notifications' into sprint9
Update formatting to match google style guide

Or at least mostly match...
Document SMTP settings
Add nodemailer to package.json

Needed for SMTP/notifications.