Implemented: Message handler system and workflow event option drop down menu

Implemented: Url link shorten handler workflow event option drop down menu
Implemented: Message handler system and workflow event option drop down menu

Hello NXC,

In the past if you only wanted to customize the message or format of message posted to a social network you had to override a custom 'PublishHandler' for each social network.

Changes
=======

Our pull request today provides for specific customization of only the message for each social network.

Our pull request provides for a new workflow event option 'Message Handler' drop down select menu populated with each 'MessageHandlers' ini setting class.

This makes it simple for admins to use this feature to customize the message handler to be used for each social network instead of just one global ini settings based default message handler for all social networks.

The order of message handlers displayed in the workflow event options drop down is configurable via ini settings order, first listed, first displayed.

We think this improvement is worth of a pull request because it increases the flexibility to customize only the message text / format / etc. used for each social network or for all (except linkedin) via workflow event options instead of by customizing the 'PublishHandler' for each social network which is most often unnecessary.

Our pull request today is based upon our last pull request https://github.com/nxc/nxc_social_networks/pull/12 changes since we reuse many small parts. Be certain to merge https://github.com/nxc/nxc_social_networks/pull/12 first before merging this pull request. 

LinkedIn Warning
=============

Warning: Due to the uniqueness of the LinkedIn share API we found that it was best to separate the message handler functionality into it's own handler to allow for maximum flexibility. In future use or upgrades of this extension to include this functionality for LinkedIn sharing to work ... the admin must change the related workflow event options and must select the 'LinkedIn' message handler in the drop down select menu.

The rest of the default social networks (Twitter, Facebook) work by default with no workflow event option changes required but even while not required it is best to make a selection using the 'Message Handler' drop down select menu.

Closing
======

Please let us know what you think! We are very excited with our recent progress on this project.

Cheers,
Brookins Consulting