Decompose Fenom and Provider functionality

Я разделил функциональность Шаблонизатора и Провайдера. Не очень изящно получилось, но тем не менее, теперь можно делать то, что я описывал в #49

Поправил юнит тесты. Скорость их проведения не упала. Да и бэнчмарк из ветки master не подкачал

Текущий Develop

fenom: !compiled and !loaded 0.3664 sec, 8.2 MiB
fenom: compiled and !loaded 0.0151 sec, 5.9 MiB
fenom: compiled and loaded 0.0012 sec, 5.9 MiB

Testing 'foreach' of big array...
fenom: !compiled and !loaded 0.0087 sec, 3.0 MiB
fenom: compiled and !loaded 0.0025 sec, 2.4 MiB
fenom: compiled and loaded 0.0018 sec, 2.4 MiB

Testing deep 'inheritance'...
fenom: !compiled and !loaded 0.0607 sec, 3.4 MiB
fenom: compiled and !loaded 0.0005 sec, 2.4 MiB
fenom: compiled and loaded 0.0000 sec, 2.4 MiB

Новый Develop

fenom: !compiled and !loaded 0.3776 sec, 8.2 MiB
fenom: compiled and !loaded 0.0148 sec, 5.9 MiB
fenom: compiled and loaded 0.0012 sec, 5.9 MiB

Testing 'foreach' of big array...
fenom: !compiled and !loaded 0.0111 sec, 3.0 MiB
fenom: compiled and !loaded 0.0025 sec, 2.4 MiB
fenom: compiled and loaded 0.0018 sec, 2.4 MiB

Testing deep 'inheritance'...
fenom: !compiled and !loaded 0.0649 sec, 3.4 MiB
fenom: compiled and !loaded 0.0005 sec, 2.4 MiB
fenom: compiled and loaded 0.0000 sec, 2.4 MiB

(Переделал старый pull request, т.к. попали лишние коммиты)