inclusion of plugin mechanism & add hook point `upload.presave`

# Regist plugin action on elFinder opts

'[cmd Or hook point]' => 'Plugin.[plugin dirctory name].[call method]'

ex.
```php
$opts = array(
	'bind'   => array(
			'upload.presave' => 'Plugin.Watermark.onUpLoadPreSave',
		),
	'roots' => array(...),
);
```

# Plugin options give plugin section

ex.
```php
$opts = array(
	'bind'   => array(
			'upload.presave' => 'Plugin.Watermark.onUpLoadPreSave',
		),
	'plugin' => array(
		'Watermark' => array(
			'source'       => 'logo.png',
			'marginRight'  => 5,
			'marginBottom' => 5,
			'quality'      => 90,
			'transparency' => 90)
		),
	'roots' => array(...),
);

```

# Instillation location of plugin

```
php
 |- plugins
 |   |- [PluginName]
 |       |- plugin.php
 |- elFinder.class.php
```

# Naming convention of class name

* class elFinderPlugin[dirname] {}

# Hook points

## upload.presave

After completing upload, before a volume driver saves a file, it is
called.

It is called with a "path", "file name", "temporary file",
"elFinder object" and "volume driver object".

ex. plugin.php
```php
class elFinderPluginExample
	private $opts;

	public function __construct($opts) {
		$default = array(
				'key' => 'value'
			);
		$this->opts = array_merge($default, $opts);
	}

	public function registed_method
	                       (&$path, &$name, $src, $elfinder, $volume) {
		/**
		 * Allow change value of $path & $name.
		 * $path      file path (set when dirctory uploading)
		 * $name      file name
		 * $src       uploaded file path
		 * $elfinder  elFinder object
		 * $volume    Volume driver object
		 */
	}
}
```
add watermark plugin

# Connector configuration options

$opts = array(
	'roots'  => array(...),
	'bind'   => array(
		/* regist action, require */
		'upload.presave' => 'Plugin.Watermark.onUpLoadPreSave',
	),
	'plugin' => array(
		/* optional, default values are */
		'Watermark' => array(
			'source'         => 'logo.png', // Path to Water mark image
			'marginRight'    => 5,          // Margin right pixel
			'marginBottom'   => 5,          // Margin bottom pixel
			'quality'        => 90,         // JPEG image save quality
			'transparency'   => 90, // Water mark image transparency
			                        // ( other than PNG )
			'targetType'     => IMG_GIF|IMG_JPG|IMG_PNG|IMG_WBMP,
			                    // Target image formats ( bit-field )
			'targetMinPixel' => 200         // Target image minimum
			                                // pixel size
		),
	),
);
$connector = new elFinderConnector(new xelFinder($opts), true);
$connector->run();