Rebuild filters

Hello!

Here is few important changes:
* New `FilterFunction`, now it has unlimited arguments;
* Any filter can get unlimited arguments separated by `:`;
* It is allowed to pass an empty value to any of argument of filter (even in the middle of different arguments)
* Almost all built-in filters were adapted.

Here is some examples:

**Slice**
Old way:
```
{{ "Test"|slice:"1:3" }}
```
New way:
```
{{ "Test"|slice:1:3 }}
```
Both of them are works fine

**YesNo**
Old way:
```
{{ simple.bool_true|yesno:"ja,nein,vielleicht" }}
{{ simple.nothing|yesno:"ja,nein" }}
```
New way:
```
{{ simple.bool_false|yesno:"да":"нет":"может быть" }}
{{ simple.bool_false|yesno:"да"::"может быть" }}
```
Second example allows to skip `no` argument.

I know that you have addons and i will review them too.

Thank you so much
Maksim