Clean and update build output more intelligently

Fixes #183.
How does this look for `TypeScriptProjects.getBuildFolder`?

```
    public static IContainer getBuildFolder(IProject project) {
        return Iterables.getOnlyElement(getFoldersFromPreference(project, IPreferenceConstants.COMPILER_OUTPUT_DIR_OPTION));
    }
```