Unify the child process code in Test::Mite.

This makes it easier to improve its error reporting.
Make a HasDefault role, pull the functionality from Mite::Project.

Mite::Config might need this.
Add a Config option to control searching for .mite

There are cases where you only want to use the cwd .mite and not walk out of it.

Also make the error message when there's no .mite a bit more friendly.
The user doesn't need to see what line it came from.
Test that we can capture mite_command() failure.

Also handy for run_in_child to return the process for inspection.
Use Child 0.10 which fixes a bug with processes that die inside an eval.
Add options for "mite compile" to exit quietly if it can't find .mite

clean will need this, too.  It'll probably wind up as a general option.
Make --search-mite-dir and --exit-if-no-mite-dir global options.

Also remove the work around for the MouseX::Foreign bug with App::Cmd.
They fixed it in 1.000.
Put the code for setting up a mite build-test environment into a function.
Use clean project directories for testing.

If the MakeMaker or Module-Build tests fail, they might leave a mess in their
project test directories.  Instead, copy the projects to a temp directory and
work on that.  Also will help for parallel testing.

For #36
Fix MakeMaker to move all newly compiled mite files into blib.

Added a shim to the mite target to move all the .pm files to blib.

For #35
Merge branch 'issue/35'

This also includes fixes for #36 and a lot of #33.