Project: Plug custom (SDK) build phase into project

There is most probably a better composition method available in
the MonoDevelop APIs, but this will have to do for now.
Build: Unpack Mono runtime in build environment
Build: Copy libmonoboehm-2.0.so.1 to libmonoboehm-2.0.so while building

We need the packaged library to be called libmonoboehm-2.0.so.1 because
that is the DT_SONAME we are linking against.

During linking, we need it to be available under the libmonoboehm-2.0.so
name.  This is usually done by linking:

    ln -s libmonoboehm-2.0.so.1 libmonoboehm-2.0.so

However,

 1. We do not know if the build host supports POSIX-style symbolic links
    (e.g.: Windows!);

 2. We cannot leave even a symbolic link behind or the Tizen SDK's
    packaging utility will bundle two copies of the library.

For these reasons, we copy libmonoboehm-2.0.so.1 to libmonoboehm-2.0.so
just-in-time before shelling out to native-make, and remove it immediately
after.
Build: Now a stateful object, config at project build time
Dialog: Allow picking the installed SDK path
Sdb: Start using full SDB executable path (obtained from SDK info) again
Build: Use full native-make executable path, obtained from SDK info
Dialog: Only accept SDK path information if SDB can be found
Build: Do not crash if SDK information was not provided
Dialog, Build: Allow the user to pick up a runtime bundle
Build: Add monitor.{Begin,End}Task for progress tracking
Dialog, Info: Add author key/password support
Utility: Factor escape utility out of Sdb handler
Build: Factor InvokeNativeTool out of DoNativeMake
Build: DoNativePackaging!
Build: Abstract the progress-reporting bits we need to their own interface
Build: Add DoNativeInstall utility
Build: Add DoNativeRun utility
NativeExec: Install TPK on device, and run it via native-run
Utility: Factor Copier utility out of execution handler