Add a destructor to Variant so it properly cleans up after itself
instead of leaking memory in case it contains a pointed to string