envsetup: cmremote,cmgerrit,cmrebase,mka,reposync

    Add the cm specific functions (cmremote, cmgerrit, cmrebase,
    mka, reposync) that are present in the gingerbread branch

Change-Id: If28a5a206b8bb9ead5242c60f6c1e6af27141b57
remove all new functions but mka & reposync
env: implement the repodiff command

 sample usage:
   repodiff ics
   repodiff github/ics --numstat
   repodiff android-4.0.4_r1.2 android-4.0.4_r2

Change-Id: Id1c1e504c75676707e59f051fd5ff9ce748d4297
Signed-off-by: Tanguy Pruvot <tanguy.pruvot@gmail.com>
envsetup.sh: Fix the `reposync` function

It seems ionice can't find `repo` if it's in ~/bin, even if ~/bin
is in the user's $PATH.  Placing repo into /usr/bin or /usr/local/
bin works, but is undesirable (build instructions from both AOSP
and CM tell users to put repo into ~/bin, and repo likes to update
itself from time to time).

This forces the reposync function to use the full path to the repo
binary.

Change-Id: I9dc4a3d4ec3f39563e3a84de7321189700079c2e
envsetup: new function cmka

- The build system adds a clean-<module> target
  for each module / package.
- This utilizes that and cleans and builds using mka.
- If no argument is supplied, it runs "mka clean".
- If argument is (bacon|otapackage|systemimage), it
  runs installclean.

Change-Id: I582ac2f92df3278c41c254c73e9c02ad7f406851

Conflicts:
	envsetup.sh
mka: change how make is called

in some environments make -j N xxx results in compiling target 'N' instead of 'xxx'
make -jN xxx will always make 'xxx' with N number of threads
Signed-off-by: Arnav Gupta <championswimmer@gmail.com>

Change-Id: I77f17c9286a5ef1d61163d8f978900fb4c24e2e7
envsetup: export ANDROID_BUILD_TOP earlier

Change-Id: Ia3497f61f4e9aaeeb793cecd3b4f488f0a48181a
envsetup: allow using mka for mm{,m}

Change-Id: I6c0fce5e67a3b5c49023d3c00825e35b08d41845