Squashed 'libs/sol/' changes from 8db6783..f061e00

f061e00 Add operator== and operator!= support for sol::object and nil
a6306d7 Cast result of floating point retrieval before receiving it
c59fc9e Fix bug with sol::object not being copyable
bec0406 Merge pull request #8 from ThePhD/master
6c06bdd Some extra-strength "nothrow" requirements.
49ad128 If you want to have return types, use `.call` instead of `operator()`.
c6f6203 We can avoid unused variable issues entirely and keep MSVC from borking out by explicitly declaring the size of the `swallow` declaration. This should make all compilers happy.
009a796 It has to be a reference, not a value. I mistakenly thought `typename Table` was taken by reference... oh well. It's fixed now. I wish VC++ didn't choke so badly on decltype.
9624dd9 VC++ Compat again.
4dab754 VC++ Compatibility and some changes to function I'll need to test.
ebbceeb Add support for const table operator[] retrieval
b2e83d4 Merge pull request #7 from ThePhD/master
856d28a EnableIf and DisableIf back in place, type trait fixed for MSVC. Bleh, this is a lot of work. Removed `functional` header, because nobody's using it.
dc69355 Forgot a private on table.
2192e98 MSVC needs explicit overloads and explicit =default operators on `sol::function`. It's quite whacky, really. Anyway, it compiles, so let's just make sure this works for GCC too.

git-subtree-dir: libs/sol
git-subtree-split: f061e0040df7fb652f3c56f23e744673585bd2a7
Merge commit 'dee56249621726a1b7e32a199b73a1e21ea59753' into lua