Fix: Various performance bottlenecks

Some simple benchmarking showed that the library added a significant
amount of runtime to the creation of an object instance. The biggest
problem was the incorrect handling of the 'arguments' keyword.

To resolve the bottlenecks, the handling of 'arguments' has been
moved to a utility function.

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>