build: Add support for vendor product and device name

 * CM's build system assumes some convention-over-configuration which
   we might need to override in order to conform to vendor requirements.
 * Allow overriding of target and product names using these new
   variables. This allows for CM conventions to work, while generating
   the correct fingerprint dynamically without post processing the
   strings.

Change-Id: Ic5913e587400dd38c04aa05de3a7becced77a59e
Use CM standard qcom naming

Change-Id: I360b3dcf1fe82140a7993189e881f9d77b571bef
build: Include pre-pathmap extra config

 * We need to mess with the pathmap for building simplerecovery in user
   builds, but previously there was no way to do this externally.
 * Source an optional config file before loading the pathmap so that we
   can do some magic without having to set environment variables outside
   the normal build system.

Change-Id: I6132f9e6ffa04678378a5a00ba37b98cd4d9f773
build: Add cafremote command to envsetup

 * So lazy!

Change-Id: I99a988180abb4fb486d4ebbb842bb9eda03bf1bc
Don't make assumptions about the formats of build descriptions

Change-Id: Id83a7594e9e1b9b4ffbdbaba695506d8d0d21a46