Added require_self directive.

For this I separated the process of finding directives from their execution.

I stored the content of the file and its directives in their corresponding properties.

I thought of removing the "if (empty($e) || !is_string($e))" condition in __toString, because, what if the processed file is actually empty? But I left it there.

It also adds a trailing semicolon to javascripts in case their missing it, in line 240.

So I'm just leaving the changes here in case you want to use them.