Simplification Branch

I really should have been commiting this in smaller chunks, I
appologise... I am starting this branch with the current state of my
HEAD. This state covers a version bump, a couple minor refactors, a
journey into XS, and eventually whole new refactor I will describe
next. I did make some incrimental commits, but they were all fo the
nature "so I can get get this back", or "Before trying foo".. None of
them would pass tests, and none of them are something I would like to
share with the world, so instead this branch starts with a squashed
version of events. I will very likely squash this branch into master
when I merge for that very reason.

***NOTE: This branch does not build currently, it is incomplete!***

Planned Changes:

 * Nore more stack trace generated on each event.
 * A context object is initialized as soon as a tool is used, tools
   called within that tool share the context
 * Context is initialized early, not late, making it closer to the
   actual point of interest (where the tool is called) giving us much
   less stack to examine, and requiring much less metadata everywhere
 * Almost all tools will be refactored into a tool library, they will
   return a boolean true/false, and a list of diagnostics. Test::More
   and Test::Simple will wrap these tools in their usual exported
   methods, and convert them into true events which get issued with a
   context.
 * Test/Builder.pm itself will largely become a legacy support package,
   it (and its singleton) will be relics.
 * No more need for provider tool metadata, a provider tool makes itself
   known by aquiring a context, if another tool already got a context
   the tool higher in the stack will find it and use it.
 * The context object is now the focus instead of the Test::Builder
   singleton.
 * What was formerly a global state stored in Test::Builder can now be
   configured at a test-specific (package-specific) level via a
   meta-object each test gets. The context finds the object to make it
   available. This lets different test packages use different encodings,
   todo states, and output streams.
More work on refactor

I promise things will become more simple soon...
Work on updating packages
Simplification work

Moving Stream up a namespace to Test::Stream
Moving most stuff to Test/Stream/

TAP and LEGACY will be integrated into Stream for performance reasons

ArrayBase is now fancy and supports inheritance, hopefully this will be
meaningful performance-wise

Test::Builder will become a legacy-support wrapper around Test::Stream
Renaming and restructuring

Changing namespaces and such, got Test::Simple working too.
More tools
Move tools
Create Provider::Meta, fix TODO
no on_error or trace, too complicated
It is amazing how much more simple subtests are now
proper return value
require_ok
Fix require_ok
Add note
'use_ok' and 'use ok'
skip and todo_skip
BAIL OUT
Work on is_deeply... OMG
is_deeply
Deep checks

is_deeply fixes
mostly_like now matches is_deeply in diagnostics