Move Persistent, Member, and some of the tracing logic.

This change allows us to write unit tests using Persistents and Members. I have also added enough of the tracing code to write tests that validate an object is traced.

R=ager@chromium.org, erik.corry@gmail.com, haraken@chromium.org, vegorov@chromium.org, zerny@chromium.org
BUG=

Review URL: https://codereview.chromium.org/125143002

git-svn-id: svn://svn.chromium.org/blink/trunk@164583 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Fix crash on incorrectly formatted MHTML documents

On incorrectly formatted MHTML documents, MHTMLArchive::create() can return
null or a MHTMLArchive object whose main resource is null. We had a release
assertion to make sure MHTMLArchive::create() does not return null and no
null check for the main resource. This was causing us to crash in both cases.

This patch adds both null checks and handles them nicely.
This patch is based on initial work from Laszlo Gombos <l.gombos@samsung.com>.

R=japhet@chromium.org

BUG=331898
TEST=mhtml/invalid-bad-boundary.mht
TEST=mhtml/invalid-bad-boundary2.mht

Review URL: https://codereview.chromium.org/125403003

git-svn-id: svn://svn.chromium.org/blink/trunk@164584 bbb929c8-8fbe-4397-9dbb-9b2b20218538