(feat)support flock based locking for blender scripts

yeah, locking is implicit, but if you set the driver to nil it will not use any locking. Currently we can pass arbitrary data to blender via the config file, all of which can be accessed via `Blender::Configuration[]` API. Supporting them via cli arguments was more difficult (we have to come up with some convention for that, may be --   ).
I want users to be able to override the path, in case they want to run multiple instance of the same job. But in that case they'll be responsible for inter script synchronization. 
task specific or host specific (depending upon the scheduler you are using) locks can be implemented using the event handler system. Though they are not intended for that purpose, i dont see anything that might break.