Runs make clean before installing an extension.

I've implemented #382. The major points of this PR is the following:

* Run `make clean` before executing `configure` in `ExtensionInstaller` class.
* Add `Buildable` interface to handle the difference between `Build` class and `Extension` class.
* Add wrapper methods that invoke `make install` or `make clean` to `MakeTask` class.
* Replace `CleanTask` and `MakeCleanTask` with `MakeTask`.
* Remove the unreachable code from `InstallCommand` class.
* Use `MakeTask` class in `ExtensionManager` class.
* Add some new tests.
* Add `ExtensionTestHelper` class to use the same extension directory in Extension test cases.
Great! we finally got rid of this.