Modular Filters implementation proposal 

A proposition to add user filters, see #19
----
As a proposition, i haven't wrote test right now...

Anatomy of a filter class
----
Filters should at least implements the MtHaml\Filter\FilterInterface.
The best way is to extends your filter from MtHaml\Filter\FilterAbstract.

````
class PhpFilter extends  MtHaml\Filter\FilterAbstract {
 	
	protected $name = 'php';
	
	// The renderer is the current renderer instance
	// $options are the environment options
 	public function enter($renderer, $options)
	{
		$renderer->write('<?php')->indent();
	}
	
	/**
	 * The parser call this method on each new line.
	 * Depending on what you returns:
	 * - NodeAbstract Object: the parser will treat "as it is"
	 * - String: the Parser will compare the current buffer line and
	 *  the string value, then replace the buffer line if String is different
	 * - Void: The default parser behavior.
	*/
	public function line($buffer, $options)
	{
		// The line will be treated as "raw" text.
		return new Text($buffer->getPosition(), $buffer->getLine());
	}
 	
 	// Close the filter
	public function leave($renderer, $options)
	{
		$renderer->write(' ?>'.PHP_EOL)->undent();
	}
}

// Add the filter, The filter will be available under :css
$env = new Environment('php');
$env->addFilter(new PhpFilter);
````

Adding Filters
-----

1. Through environment configuration:

```
$filters = array('textile' => 'Path\To\Class', 'saas' => new Saas);
$env = new Environment('php', array(), filters);
```

2. Through addFilter() method:

```
// Add filter by class name: the class will be instanciated if filter is used
$env->addFilter('saas', 'Project\\Saas');

// Add filter by instance:
$env->addFilter(new Saas);
// you can override the instance filter name like this:
$env->addFilter('custom', new Saas);