dx_compile is working well

I need to name the output dir so that different targets don't clobber
each other's classes.dex. I am thinking of where to place the files
where they will be safe. I am considering naming them after the package
and just renaming them to classes.dex during the package step.
I worry that is kind of out of scope task for the packaging class though.
Add artifact_cache to dx_compile

We will have to see how well this works, but I believe
most of the moving parts are taken caare of for us in Nailgun:wq
Move classes.dex output to a dir named 'target.id'

This stops accidental clobbering of classes.dex by any
targets without the same package name.

If they have the same package name, then perhaps we want
a clobber.
Rename some vars as we tighten things up in dx_compile
Clean up and doc DxCompile

This class is ready except for finding if there is an easy
way to pass VM options to dx. If not then it needs to have
the setup_parser completed.

One lingering question is where to put output. I am tempted
to move the output from aapt and DxCompile to the dist folder,
since I will need it acessbile for aapt_package. We will see if
it is needed when we work on that class.