Fixed NodeGadget::noduleTangent() binding.

Because of a signature mismatch, any python implementations of the method would not be picked up from C++.
Fixed potential bug in NodeGadget::create().

It was possible to dereference an invalid iterator if no creator was registered for the base node type. This didn't happen in practice, but the new implementation is more idiomatic, doesn't allocate temporary memory unnecessarily and should keep Coverity happy.
Fixed LRUCache getter cost calculations.

Because the cost arguments weren't references, the costs weren't getting returned to the cache.
Fixed Metadata test hang.

Because testMetadataThreading() emits metadata changed signals on arbitrary threads, if any python slots happen to be connected, they must acquire the GIL. Therefore we must release the GIL before running the test. This problem didn't present itself when running the tests in isolation because no slots are connected then, but if run in a scenario where a slot was connected, the problem would become apparent.