Allow devices to specify certain ro. props via TARGET_UNIFIED_DEVICE

This modifies buildinfo.sh to not set model, name, description, and
fingerprint in build.prop. These can then be set via custom init
lib.
This also fixes ota_from_target_files to function without these
props being preset.

Change-Id: I945b2c38e60b207d2d0f82b34f4f230ac21b0657
[HAX] Allow per-target dtbTool

 * Revert this when fixed

Change-Id: I97ecb0448ae7bd5859454be290c5dde6248b2859
gettop: fix symlink detection

Summary: We must use the -P flag for pwd to properly get $PWD from the environment *with* symlinks. Otherwise symlink
detection is broken and anything we do using $(gettop) at the top of a symlinked path won't work properly. I noticed this
issue while running on a system that has a SSD RAID symlinked to my android build home directory, which is ~/ssd_storage.
The top in this instance is a symlink, which means that gettop() returns my home path, or the path above the symlink
directory (but not the symlinked directory). This is a major issue in case developers choose to use $(gettop),
$ANDROID_BUILD_TOP, or $T (doesn't really matter either way).

Test Plan: Create a symlink and sync android source into the path. Open up the symlink, run envsetup.sh, and check
$(gettop) output.

While this isn't the best solution, it fixes an issue without creating new issues.

Change-Id: I65bc345753805e6161098d2af6e0bee0b07d37b1
Merge remote-tracking branch 'CyanogenMod/cm-11.0' into cm-11.0

Conflicts:
	core/Makefile