ART: Add support for patching and loading OAT files compiled with PIC

* Images (.art) compiled with pic now have a new field added.
* isDexOptNeeded will now skip patch-ing for apps compiled PIC
* First-boot patching now only copies boot.art, boot.oat is linked

As a result, all system preopted dex files (with --compile-pic) no
longer take up any space in /data/dalvik-cache/<isa>.

(cherry-picked from AOSP master
46774767fcf7780d1455e755729198648d08742e)

Conflicts (from aosp master):
	compiler/image_test.cc
	compiler/image_writer.cc
	compiler/image_writer.h
	compiler/oat_test.cc
	dex2oat/dex2oat.cc
	oatdump/oatdump.cc
	runtime/elf_file.cc
	runtime/elf_file.h
	runtime/elf_file_impl.h
	runtime/oat_file.cc
	runtime/oat_file.h

Bug: 18035729

(cherry picked from commit 90ca5c0301651101de0e363842e5d08ae65233f7)

Change-Id: I8d99f95cc3d1fa221fc530ebb1fcc4b3263c183d
20 files changed