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
Fix SmokeTest

Change-Id: Ia53766b62d3777de49eaaac122042b99e6f1a3f7
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
add repodiff