New function call method

I wrote an implementation of operator() in Variant that can take as many arguments as wanted. There is a corresponding example in func.cpp. This means that function calls are no longer limited to four arguments.

This is implemented with an std::initializer_list, so requires a C++11-compliant compiler (the right flags have been added to CMakeLists.txt to enable this).