Added manual memory management override

Qt manages a widget's memory internally, which means we can't use shared
pointers lest we end up with a double delete. I don't want to disable
memory protection globally - since it's a very useful feature - and I
don't want to use light userdata hacks.

The solution is this: an override on a per-userdata basis. If a userdata
has this override, then it is allowed to pass through the memory
protection checks. This behavior is similar to a cast in C++: you should
never need it unless you're wiring ugly things together.
Removed an empty file
Support push for LuaValue

This was causing problems due to the way function overloading is handled
in C++. Class specialization seems to resolve later in the process,
which I take advantage of to ensure LuaValue always works properly.

If you're curious what the problem was (it's fairly hard to explain),
just run the test case without the include/* additions.
Fix exception error formatting

Stack trace appending was getting fairly insane (duplicate copies of
redundant traces) so I needed to clean this up. The solution here is a
bit hackish, since I'm just guessing if the string has a stack trace.
This works reasonably well, so I'm just going to stick with it.
minor debug
Added pushAll
Added pushedInvoke

The old system had no way of invoking a Lua function without using
invoke. This reworks that old way to allow clients to push their
arguments, then invoke Lua code. Error handling is still used, ensuring
that non-invoke()-based invocations aren't second-class citizens.
minor style
Prefer throwing LuaExceptions, instead of stack.error
Allow Lua to connect to Qt signals
Remove a strange use of new
LuaUserdata throws when it is accessed with no data

This only applies in practice to stack-based userdata. When this
userdata falls out of scope, but Lua itself retained a reference to it,
it would remain as a zombie. It would suddenly have no properties and
would fail silently. This is quite confusing to deal with, so I've
decided to just throw as soon as access is made.

One problem is that Lua itself has no way of knowing whether a userdata
is valid or not; only the exception will serve as an indicator that the
userdata has perished. In practice, I don't think this will be too much
of a problem, as long as the error message is specific enough.
Don't save stack userdata at all if LuaEnvironment is accepting it
Support fully signal disconnection

Most of this code is ensuring that disconnection from both the Lua and
the C++ sides can occur without causing problems later on.
Fix some old bugs in LuaStackAccessible
Support custom QVariant converters
Use all methods for QObject resolution
Don't keep looking for a connect method
Removed a debug statement