Fixing problems related to extension management.

This pull request aims to solve several issues related to phpbrew extension management:

- Enabling a non installed extension `foobar` resulted in buggy behavior: creation of a wrong `foobar.ini` file trying to load an inexistent `foobar.so`.
- Disabling a non installed or non enabled extension returned positive message.
- Installing extensions which have a source file with a different name from extension name itself caused errors. Known cases:
  - jsonc extension should load json.so, not jsonc.so
  - pecl_http extension should load http.so, not pecl_http.so - already reported on #154
  - markdown extension should load discount.so, not markdown.so - already reported on #154
  - + a bunch of other extensions, pecl is a quite unruly garden of extensions

What's new:

- Extension at class level
- A non destructive way to manage extension state (disabled/enabled). Old behavior destroyed the `.ini` files, loosing additional configurations. New behavior simply moves the .ini files. Ex:
  - disabling `foo` extension leads to a rename of `foo.ini` to `foo.ini.disabled`
  - enabling `foo` extension leads to a rename of `foo.disabled.ini` to `foo.ini`
- Extension conflict resolution. Ex:
  - Assuming that `foo` can't live with `bar`. When enabling `foo`, `bar` is disabled automatically and event is logged on terminal.
- Better extension.so "guessing", solves #154


TODO:

- automated tests

Cheers!