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.
Ok. I'm sorry that my description isn't clear. I mean that `make: *** No rule to make target 'no_such_target'` can be shown even when a test case succeeds, so the issue is just whether we allow dirty outputs or not.
Then I've already added an new empty directory and a simple Makefile for testing, which has no shell command to be executed. See tests/fixtures/make/MakeTaskTest/Makefile.