Extract factory interface & add basic pecl impl
Add tests for Pecl factory