Merge branch 'stable'
connect the latest and greatest of build macros.  now have bootstrapping available in one word.  (and with end-to-end integrity even if you don't have mdm already available locally!)  instructions in the readme for bootstrapping without any existing mdm will continue to work, of course, but the route introduced here is easy, secure, and also a good example of how to set up bootstrapping in other projects.
upstream'd the pattern for making executable jars.
implement a few words of reporting from the mdm-update command as it's in progress, so that when doing an update on a project with a lot of dependencies, there's a pulse visible.

at the start of each dependency submodule's update, a line with the name and the n-of-m count is printed.  these lines overwrite each other as they go; if a repo has 100+ dependencies, I don't wanna hear about it unless they've changed.

progress bars for actual percent work within a single fetch is future work.
move a bunch of tests that were named wrong
fix some comments in tests
first pass on separating work tree from git data dir for dependency modules.  surprisingly, this seems to get the basic functionality down already, as far as mdma coverage can tell.
minor fixes to a bunch of tests.  it appears the jgit lsremote command doesn't presently see through the gitdir indirection.
update exus-build link (the executable will now start with a shebang header)
Merge branch 'isolated-worktree'.  This puts submodule git data storage under the parent's .git/modules/ dir, much as mainline git has done starting in git-1.7.8.

This still does not mean git is polite when you switch to a branch that ought be entirely absent the submodule, though; much like when a branch change tries to remove a folder but there's untracked within, and you just get noise when switching back again, there's a similar clunk here.

Technically, the behavior is reasonable (what if there's some semantic data in that .git file that I don't want to lose?), but realistically it's just annoying.  I'm thinking about implementing workarounds via either recognizing canonical gitdir lines and blowing them away, or something about inspecting the reflog, or... sometime.  It's really awkward to do it as any observer that's not in the middle of the git-checkout control flow though.
shifting dependency on lib/jsch to version 0.1.51.mvn.
adding dependency on commons-lang at 2.6.mvn.
use relative paths to connect the working dir with the git data dir of submodules.  this is important so that the whole project can be moved at once without irritating breaks in config.
Merge branch 'isolated-worktree'
update exus-build config link: now uses smarter incremental builds.
remove stale import
switch to using the nested tag syntax for invoking the javac macro instead of the tostring hack, no practical difference just feels better
update changelog to include the last few features and fixes.
mention shifts of third party libraries in changelog.
fix initializing the parent repo's config to not save unnecessarily, following the claims the docs of the initLocalConfig function already made.