fix bug in handling submodules that aren't managed by mdm.
build now creates mdm.jar and a shell script called mdm.
Merge branch 'master' into stable
release version v2.12.0
Merge branch 'stable'
Fix bugs in config filtering:

 - pass through load calls when the original config is file-based, so there's actually something there to filter if the original hadn't been loaded yet.

 - work on config keys that have only two part keys.

Practically speaking, this fixes username not being picked up from the system for use in commit messages.
Add parse and validate methods to MdmCommand interface.

These are already implemented in some commands, and will be in the rest in the future.  Now that these functions are defined for all MdmCommand, I can call them from the main method in Mdm, and remove the placeholder calls at the top of command already using the pattern, which makes it easier to compose commands programmatically in tests without having to fake args objects.
Begin refactoring of MdmReleaseCommand and construction of unit tests.
`mdm release` command now rejects repositories with any uncommitted changes.  tests for same.
fix file canonicalization bug in MdmReleaseInitCommand tests.  this is again something that only shows up in the realm of unit testing itself, because of fake-cd jiggery pokery.
add test methods for file selection in MdmReleaseCommand.
remove in repo root check in release command: there's no reason releasing actually requires being run in a repo root.
Merge branch 'master' into stable
adding dependency on proguard at v4.9.
add a new dist-packed target to build config.

dist-packed filters the jar made by dist through proguard shrinking; debug symbols are left intact and stack traces still look normal, but unnecessary classes are stripped out for size savings.

the run-mdma target now uses dist-packed instead of disk, as it's quite necessary to do integration tests on the output of proguard.

i'd like to be able to use proguard's optimize feature, but it doesn't work trivially (some error about LVTT entries); perhaps in the future if there's a significant payoff then that'll receive revisitation.
Merge branch 'master' into stable