LPS-36673

The Idea of this feature is to allow developer define the type of notification a portlet will support, and its delivery method. The UserNotificationManager will manage 
1) if a notifiation should be sent to a user.
2) how to interpret a NotificationEvent.
3) store UserNotificationHandler.
4) store UserNotificationDefinitions.
5) and more if needed in the future.

This will also allow an user interface to let user manage their own notificaiton. A user can sign up or decline notifcaiton for a particular portlet, class, notification type. For example, http://issues.liferay.com/secure/attachment/71956/ConfigureNotifications3.png