Add Zend style Stream Wrapper abstraction layer

Register supported URI schemes mapping to internal
handlers for File::open().  If no scheme is specifid,
the file:// wrapper is used by default.

This diff also adds the file:// and zlib: wrappers which were
previously only invoked via default and compress.zlib://
respectively.
Handle redeclared functions less sadly.

When redeclaring functions, there was some line noise from an
assertion failure in the emitter and a crash in debug builds. Approximate
our behavior for other kinds of redeclaration. According to Zend, this
really is an include-time failure.
Fix an issue with unused LdClsCns instructions

If you LdClsCns and don't use the output, it doesn't get
assigned a register which breaks the check for uninit.  To solve this,
split the uninit check into a separate, Essential instruction that
consumes the output of the LdClsCns.  (Presumably we could leave out
this instruction in cases where we know the class is loaded, and the
LdClsCns could rightfully be optimized out in that case.)