100% speedup for 'ant dx' when no dx sources have changed
100% speedup for 'ant dx' when no dx sources have changed

Summary:
This uses the Ant `uptodate` feature to avoid re-running
the expensive `dx` build every single build if none of its sources
or dependent JARs have changed.

Test Plan:
  % repeat 2 time ant dx
  Buildfile: /Users/bgertzfield/devtools/buck/build.xml

  dx-check-build:

  dx:
      [mkdir] Created dir: /Users/bgertzfield/devtools/buck/build/dx_classes
      [javac] Compiling 382 source files to /Users/bgertzfield/devtools/buck/build/dx_classes
      [javac] Note: Some input files use unchecked or unsafe operations.
      [javac] Note: Recompile with -Xlint:unchecked for details.
      [javac] Creating empty /Users/bgertzfield/devtools/buck/build/dx_classes/com/android/dx/rop/package-info.class
      [javac] Creating empty /Users/bgertzfield/devtools/buck/build/dx_classes/com/android/dx/ssa/package-info.class
        [jar] Building jar: /Users/bgertzfield/devtools/buck/build/dx.jar

  BUILD SUCCESSFUL
  Total time: 6 seconds
  ant dx  16.48s user 0.62s system 243% cpu 7.016 total

  ===

  Buildfile: /Users/bgertzfield/devtools/buck/build.xml

  dx-check-build:

  dx:

  BUILD SUCCESSFUL
  Total time: 0 seconds
  ant dx  1.35s user 0.10s system 142% cpu 1.017 total

Confirmed changing a source or jar file rebuilt `dx`:

  % touch third-party/java/dx-from-kitkat/src/com/android/dex/SizeOf.java
  % time ant dx
  Buildfile: /Users/bgertzfield/devtools/buck/build.xml

  dx-check-build:

  dx:
      [javac] Compiling 1 source file to /Users/bgertzfield/devtools/buck/build/dx_classes
        [jar] Building jar: /Users/bgertzfield/devtools/buck/build/dx.jar

  BUILD SUCCESSFUL
  Total time: 2 seconds
  ant dx  3.94s user 0.35s system 160% cpu 2.681 total

sdwilsh/buck,vschs007/buck,k21/buck,dpursehouse/buck,raviagarwal7/buck,davido/buck,dpursehouse/buck,janicduplessis/buck,nguyentruongtho/buck,dushmis/buck,siddhartharay007/buck,k21/buck,rmaz/buck,Learn-Android-app/buck,ilya-klyuchnikov/buck,dushmis/buck,k21/buck,ilya-klyuchnikov/buck,shs96c/buck,rowillia/buck,Addepar/buck,1yvT0s/buck,romanoid/buck,mogers/buck,zpao/buck,tgummerer/buck,rowillia/buck,OkBuilds/buck,liuyang-li/buck,vine/buck,justinmuller/buck,shybovycha/buck,ilya-klyuchnikov/buck,rmaz/buck,liuyang-li/buck,davido/buck,luiseduardohdbackup/buck,SeleniumHQ/buck,bocon13/buck,sdwilsh/buck,k21/buck,Dominator008/buck,robbertvanginkel/buck,shs96c/buck,bocon13/buck,tgummerer/buck,Heart2009/buck,1yvT0s/buck,shybovycha/buck,JoelMarcey/buck,Learn-Android-app/buck,pwz3n0/buck,clonetwin26/buck,romanoid/buck,illicitonion/buck,shs96c/buck,Dominator008/buck,clonetwin26/buck,justinmuller/buck,kageiit/buck,Addepar/buck,ilya-klyuchnikov/buck,romanoid/buck,dsyang/buck,nguyentruongtho/buck,pwz3n0/buck,sdwilsh/buck,lukw00/buck,rmaz/buck,liuyang-li/buck,romanoid/buck,tgummerer/buck,Addepar/buck,rmaz/buck,k21/buck,mnuessler/buck,justinmuller/buck,marcinkwiatkowski/buck,pwz3n0/buck,vine/buck,dushmis/buck,darkforestzero/buck,rowillia/buck,MarkRunWu/buck,SeleniumHQ/buck,rmaz/buck,kageiit/buck,ilya-klyuchnikov/buck,tgummerer/buck,JoelMarcey/buck,justinmuller/buck,pwz3n0/buck,bocon13/buck,daedric/buck,romanoid/buck,stuhood/buck,kageiit/buck,OkBuilds/buck,JoelMarcey/buck,Distrotech/buck,Heart2009/buck,OkBuilds/buck,mogers/buck,rhencke/buck,mnuessler/buck,rmaz/buck,darkforestzero/buck,vine/buck,rhencke/buck,zhan-xiong/buck,JoelMarcey/buck,daedric/buck,mikekap/buck,mnuessler/buck,mogers/buck,mikekap/buck,hgl888/buck,Learn-Android-app/buck,rmaz/buck,ilya-klyuchnikov/buck,OkBuilds/buck,brettwooldridge/buck,mogers/buck,grumpyjames/buck,zhuxiaohao/buck,facebook/buck,JoelMarcey/buck,robbertvanginkel/buck,tgummerer/buck,Dominator008/buck,lukw00/buck,k21/buck,dsyang/buck,grumpyjames/buck,LegNeato/buck,rhencke/buck,SeleniumHQ/buck,clonetwin26/buck,dsyang/buck,ilya-klyuchnikov/buck,tgummerer/buck,rowillia/buck,rhencke/buck,grumpyjames/buck,zhuxiaohao/buck,Distrotech/buck,vschs007/buck,Distrotech/buck,Distrotech/buck,justinmuller/buck,pwz3n0/buck,OkBuilds/buck,artiya4u/buck,mogers/buck,zhuxiaohao/buck,zpao/buck,raviagarwal7/buck,Distrotech/buck,illicitonion/buck,grumpyjames/buck,mnuessler/buck,Heart2009/buck,vschs007/buck,k21/buck,lukw00/buck,daedric/buck,shybovycha/buck,lukw00/buck,vine/buck,davido/buck,Dominator008/buck,shybovycha/buck,artiya4u/buck,zhuxiaohao/buck,Heart2009/buck,justinmuller/buck,SeleniumHQ/buck,luiseduardohdbackup/buck,robbertvanginkel/buck,liuyang-li/buck,artiya4u/buck,bocon13/buck,vschs007/buck,kageiit/buck,Addepar/buck,clonetwin26/buck,sdwilsh/buck,brettwooldridge/buck,janicduplessis/buck,darkforestzero/buck,hgl888/buck,romanoid/buck,Heart2009/buck,darkforestzero/buck,kageiit/buck,dushmis/buck,darkforestzero/buck,siddhartharay007/buck,Learn-Android-app/buck,janicduplessis/buck,Heart2009/buck,tgummerer/buck,Addepar/buck,marcinkwiatkowski/buck,vine/buck,stuhood/buck,dsyang/buck,daedric/buck,vschs007/buck,shybovycha/buck,mnuessler/buck,darkforestzero/buck,clonetwin26/buck,zhan-xiong/buck,davido/buck,raviagarwal7/buck,LegNeato/buck,stuhood/buck,vine/buck,MarkRunWu/buck,lukw00/buck,janicduplessis/buck,ilya-klyuchnikov/buck,SeleniumHQ/buck,ilya-klyuchnikov/buck,JoelMarcey/buck,Dominator008/buck,shs96c/buck,OkBuilds/buck,dushmis/buck,nguyentruongtho/buck,pwz3n0/buck,Learn-Android-app/buck,nguyentruongtho/buck,pwz3n0/buck,marcinkwiatkowski/buck,rhencke/buck,daedric/buck,siddhartharay007/buck,LegNeato/buck,neonichu/buck,SeleniumHQ/buck,SeleniumHQ/buck,neonichu/buck,clonetwin26/buck,ilya-klyuchnikov/buck,brettwooldridge/buck,shybovycha/buck,Learn-Android-app/buck,artiya4u/buck,1yvT0s/buck,zhuxiaohao/buck,pwz3n0/buck,hgl888/buck,tgummerer/buck,liuyang-li/buck,luiseduardohdbackup/buck,marcinkwiatkowski/buck,shs96c/buck,liuyang-li/buck,rhencke/buck,SeleniumHQ/buck,neonichu/buck,LegNeato/buck,tgummerer/buck,vine/buck,mikekap/buck,kageiit/buck,robbertvanginkel/buck,davido/buck,bocon13/buck,Distrotech/buck,Learn-Android-app/buck,robbertvanginkel/buck,mnuessler/buck,liuyang-li/buck,dsyang/buck,raviagarwal7/buck,vine/buck,dsyang/buck,OkBuilds/buck,shs96c/buck,grumpyjames/buck,clonetwin26/buck,LegNeato/buck,tgummerer/buck,dpursehouse/buck,romanoid/buck,SeleniumHQ/buck,neonichu/buck,nguyentruongtho/buck,vine/buck,janicduplessis/buck,rowillia/buck,janicduplessis/buck,mogers/buck,rmaz/buck,liuyang-li/buck,dsyang/buck,illicitonion/buck,siddhartharay007/buck,rmaz/buck,zhan-xiong/buck,siddhartharay007/buck,shs96c/buck,robbertvanginkel/buck,raviagarwal7/buck,facebook/buck,k21/buck,clonetwin26/buck,justinmuller/buck,Dominator008/buck,neonichu/buck,Learn-Android-app/buck,raviagarwal7/buck,Addepar/buck,SeleniumHQ/buck,artiya4u/buck,shs96c/buck,dsyang/buck,brettwooldridge/buck,raviagarwal7/buck,zhan-xiong/buck,JoelMarcey/buck,JoelMarcey/buck,robbertvanginkel/buck,shybovycha/buck,Addepar/buck,SeleniumHQ/buck,davido/buck,daedric/buck,artiya4u/buck,daedric/buck,mikekap/buck,brettwooldridge/buck,daedric/buck,robbertvanginkel/buck,justinmuller/buck,mikekap/buck,1yvT0s/buck,grumpyjames/buck,MarkRunWu/buck,dushmis/buck,facebook/buck,zhan-xiong/buck,shybovycha/buck,robbertvanginkel/buck,sdwilsh/buck,MarkRunWu/buck,rhencke/buck,OkBuilds/buck,brettwooldridge/buck,JoelMarcey/buck,janicduplessis/buck,hgl888/buck,vine/buck,brettwooldridge/buck,justinmuller/buck,lukw00/buck,nguyentruongtho/buck,1yvT0s/buck,LegNeato/buck,siddhartharay007/buck,romanoid/buck,kageiit/buck,dpursehouse/buck,shybovycha/buck,illicitonion/buck,Heart2009/buck,facebook/buck,Heart2009/buck,neonichu/buck,vschs007/buck,dpursehouse/buck,vschs007/buck,grumpyjames/buck,Addepar/buck,Dominator008/buck,LegNeato/buck,lukw00/buck,k21/buck,shs96c/buck,romanoid/buck,marcinkwiatkowski/buck,Addepar/buck,LegNeato/buck,Distrotech/buck,bocon13/buck,Addepar/buck,dushmis/buck,rhencke/buck,Heart2009/buck,dsyang/buck,daedric/buck,darkforestzero/buck,stuhood/buck,Addepar/buck,Distrotech/buck,mikekap/buck,zhan-xiong/buck,zhan-xiong/buck,zhuxiaohao/buck,stuhood/buck,artiya4u/buck,Learn-Android-app/buck,janicduplessis/buck,zpao/buck,zhan-xiong/buck,marcinkwiatkowski/buck,vschs007/buck,mnuessler/buck,Addepar/buck,siddhartharay007/buck,davido/buck,Distrotech/buck,darkforestzero/buck,mikekap/buck,illicitonion/buck,daedric/buck,sdwilsh/buck,marcinkwiatkowski/buck,rowillia/buck,illicitonion/buck,nguyentruongtho/buck,Dominator008/buck,raviagarwal7/buck,k21/buck,shs96c/buck,rowillia/buck,MarkRunWu/buck,illicitonion/buck,grumpyjames/buck,clonetwin26/buck,zhan-xiong/buck,darkforestzero/buck,rmaz/buck,rowillia/buck,Addepar/buck,mikekap/buck,k21/buck,hgl888/buck,robbertvanginkel/buck,Distrotech/buck,mikekap/buck,mogers/buck,OkBuilds/buck,sdwilsh/buck,clonetwin26/buck,rowillia/buck,stuhood/buck,mikekap/buck,illicitonion/buck,mikekap/buck,dpursehouse/buck,hgl888/buck,sdwilsh/buck,vine/buck,zhan-xiong/buck,shs96c/buck,romanoid/buck,sdwilsh/buck,lukw00/buck,shybovycha/buck,MarkRunWu/buck,liuyang-li/buck,neonichu/buck,dpursehouse/buck,bocon13/buck,SeleniumHQ/buck,lukw00/buck,romanoid/buck,1yvT0s/buck,mogers/buck,marcinkwiatkowski/buck,stuhood/buck,OkBuilds/buck,vschs007/buck,bocon13/buck,raviagarwal7/buck,rmaz/buck,daedric/buck,marcinkwiatkowski/buck,bocon13/buck,mogers/buck,Learn-Android-app/buck,shs96c/buck,dushmis/buck,artiya4u/buck,brettwooldridge/buck,robbertvanginkel/buck,grumpyjames/buck,janicduplessis/buck,luiseduardohdbackup/buck,rowillia/buck,luiseduardohdbackup/buck,romanoid/buck,JoelMarcey/buck,bocon13/buck,LegNeato/buck,LegNeato/buck,zpao/buck,raviagarwal7/buck,brettwooldridge/buck,brettwooldridge/buck,illicitonion/buck,vschs007/buck,raviagarwal7/buck,rmaz/buck,1yvT0s/buck,robbertvanginkel/buck,zpao/buck,grumpyjames/buck,zhan-xiong/buck,justinmuller/buck,OkBuilds/buck,OkBuilds/buck,dsyang/buck,LegNeato/buck,dushmis/buck,1yvT0s/buck,ilya-klyuchnikov/buck,davido/buck,luiseduardohdbackup/buck,marcinkwiatkowski/buck,liuyang-li/buck,zhuxiaohao/buck,Dominator008/buck,zpao/buck,SeleniumHQ/buck,brettwooldridge/buck,siddhartharay007/buck,luiseduardohdbackup/buck,daedric/buck,justinmuller/buck,lukw00/buck,vschs007/buck,bocon13/buck,mikekap/buck,rhencke/buck,davido/buck,mnuessler/buck,Dominator008/buck,shybovycha/buck,luiseduardohdbackup/buck,romanoid/buck,raviagarwal7/buck,darkforestzero/buck,raviagarwal7/buck,JoelMarcey/buck,darkforestzero/buck,janicduplessis/buck,dpursehouse/buck,JoelMarcey/buck,davido/buck,darkforestzero/buck,justinmuller/buck,shs96c/buck,LegNeato/buck,janicduplessis/buck,grumpyjames/buck,dushmis/buck,neonichu/buck,illicitonion/buck,shybovycha/buck,Learn-Android-app/buck,Dominator008/buck,neonichu/buck,stuhood/buck,sdwilsh/buck,zhuxiaohao/buck,marcinkwiatkowski/buck,rhencke/buck,artiya4u/buck,stuhood/buck,JoelMarcey/buck,zhuxiaohao/buck,1yvT0s/buck,k21/buck,marcinkwiatkowski/buck,lukw00/buck,rowillia/buck,k21/buck,ilya-klyuchnikov/buck,hgl888/buck,siddhartharay007/buck,facebook/buck,clonetwin26/buck,grumpyjames/buck,davido/buck,MarkRunWu/buck,mogers/buck,vschs007/buck,clonetwin26/buck,artiya4u/buck,vschs007/buck,justinmuller/buck,bocon13/buck,darkforestzero/buck,rmaz/buck,tgummerer/buck,dsyang/buck,stuhood/buck,robbertvanginkel/buck,daedric/buck,brettwooldridge/buck,Dominator008/buck,rowillia/buck,ilya-klyuchnikov/buck,OkBuilds/buck,artiya4u/buck,sdwilsh/buck,janicduplessis/buck,hgl888/buck,liuyang-li/buck,stuhood/buck,LegNeato/buck,pwz3n0/buck,marcinkwiatkowski/buck,mnuessler/buck,zhan-xiong/buck,mogers/buck,illicitonion/buck,MarkRunWu/buck,shybovycha/buck,Distrotech/buck,luiseduardohdbackup/buck,brettwooldridge/buck,illicitonion/buck,rhencke/buck,dsyang/buck,facebook/buck,pwz3n0/buck,davido/buck,pwz3n0/buck,zpao/buck,sdwilsh/buck,zhan-xiong/buck,facebook/buck,illicitonion/buck,hgl888/buck,sdwilsh/buck,clonetwin26/buck,dsyang/buck,davido/buck