Moved Shared logic to DataSource Class. Most of code used to manage lastId stored in a file is now used by leads and users data source and getConnection is also used across most datasources too
CampaignQueueConsumer should be responsible for get the lastId processed from file and passing it to $datasource process method. Also now we only use lastId stored in file if $startId in processMessage is null
don't need the method_exists check as all datasources will have a getLastId method
use datasource name as folder name instead of using $_REQUEST['__path__']
pass $this to get_class, else it return class name of parent class instead of child
use class_shortname method instead
Merge pull request #1 from fobilow/master

Moved Shared logic to DataSource Class.