build: Preliminary support for AOKP product builds

If building a aokp_* product, skip crawling the filesystem for
AndroidProduct makefiles (and, of course, parsing their contents)
and aim directly for the device/<product>/aokp.mk device configuration

Change how we search for AOKP makefiles.

build: Fix fastpath code for AOKP_BUILD

 * We need to adjust to the new validations

build: Fix aokp builds

the setup variable wasn't exported, and was being missed by part
of the scripts

Change-Id: Ie41c87e7412e75285505cb3115047f9a74025717
Signed-off-by: Arnav Gupta <championswimmer@aokp.co>
Add otapackage support for backuptool

Change-Id: I512554c579d444067cd3ccbb0e6946a5eb6bc964a
Squashed commit of breakfast/brunch commands

Add a CM-specific breakfast menu

We usually don't wan't all the devices in the lunch menu, so
we can now choose to pick up breakfast or brunch and get a
smaller selection of devices (i.e., those we support)

Make brunch more nutritious

* "breakfast device-name" will set up the environment, just like lunch.
* "brunch device-name" will actually do the whole setup and build :)

brunch: add a lazier mode

Since all of CM's targets have a predictable PRODUCT_NAME and BUILD_VARIANT
(i.e., "cyanogen_$(PRODUCT_DEVICE)-eng"), brunch can now be invoked passing
just the PRODUCT_DEVICE ("brunch passion" for the N1 setup+build, for
example).
The "classic" long form of $(PRODUCT_NAME)-$(BUILD_VARIANT) can still be used
if desired ("brunch cyanogen_passion-eng" still works).

breakfast in bed

breakfast in bed (aliased to "bib") is the baconless friend of lazy
brunch.
You can now use "breakfast passion", or "bib passion", to setup the
corresponding CM build without actually building it

Fix breakfast for the undecided

The menu presentation (i.e., giving no arguments to breakfast
or brunch) was broken, so if you didn't know the name of your
target you weren't given a list to choose from, just an error.

Change-Id: I85b8217daa2d511c16a1e82c700e1b0fadbb36ac
CyanogenNom: Now moar helpful!
Allow override of device asserts, including multi-device support.

Set in board file with TARGET_OTA_ASSERT_DEVICE.
(cherry-picked from commit 0f452f21fc9323b9d1fe746161761cf40aaa5030)

Change-Id: I3d06bdc0e3e26bde0c0e646accd050364f9713b9
build: Run squisher for the bacon target

Change-Id: If33402a5eb1661345c7d37ec1778742096449c70

TARGET_CUSTOM_RELEASETOOL is a squisher replacement

Change-Id: I9c7126d6bbe0303c1d35bb54ec2f0c9187b131e0

Fix tabs, sorry bad commit --amend :p

Change-Id: Ia981edb520d7b5f91e0717f6b4d8180386c8a20d
build in colors: Install outputs in blue/yellow [basic ics version]

"target prefix:" in yellow
"Install: file" in cyan

should be in a single command line else there are sync problems
in multithread (-j X)

These colors can be tuned in core/Makefile if you use a white terminal.
can be disabled with "export BUILD_WITH_COLORS=0"

Only the most important output is colored to reduce ics merge problems

Change-Id: I0e585079fde6900799ef209367a523d94a51cda5

Colors: add more colors to final build steps

also fix releasetool echo and visible recovery echos

Change-Id: Icf5d88468572f935610c544bf1d5d356ec9870d3

build in colors: host C/C++

Change-Id: Ic415cab53a2efa104c9d4b31ddbe8c8eb74e493d
build-with-colors: moar colors

- rename CL_PFX and CL_INS to better match the
  colors they show.
- add more colors.

Output of:
- most host stuff is yellow
- most target stuff is green
- installing/copying files is cyan
- import/export includes and notice files is cyan
- bootimage/recoveryimage is cyan
- and some more colors in many places ;)

Change-Id: I5532afa4ba608e0a7c408516dc9f912f9ca389f7