Refactor update: Invokable changes, new interface for cloning objects
and moved gen classes to nl.grim.common.op package.

Invokable refactoring:

-Implementations weren't able to specifcy that the parameter should be
of a specific type (which was an issue for the new GenObjectClone WIP
class), as it would no longer be a overriding method. This is now
facilitated by having the method's specified type be a (sub)type of that
of the typeParameter asssigned at the class level.
-Because of this, implementations are now forced to fill in what type
the method will be about, even if it's just Object. 
-GenArrayClone has been updated with this change. It uses typeParameter
Object, as there is no general parent class for all Array types.
-Removed ManufacturerType until further notice (unwarranted complexity
ensued with this new design, type is not in use yet anyway)
-Renamed PingPong1Type (yes that was a typo) to PingableType
-Removed suffix Type from all structs that had it

Cloning objects:

-"Normally" (as far as that term goes) you tell a class that it
implements Cloneable. Which does nothing at compilation time, and the
clone method in question of said class could still be protected.
-A new WIP design is here to change that: the CloneProducer interface.
Extends java.lang.Cloneable and forces implementations to create a
overriding clone method that is publically accessible
-GenArrayClone is not affected by this concept (yet?)
-Added new WIP class GenObjectClone, which will have a strategy design
pattern structure similar to that of GenArrayClone.

Package changes:

-nl.grim.common.gen.clone and nl.grim.common.gen.permutation are now in
nl.grim.common.op
-removed nl.grim.common.gen.permutation's subpackages (effectively
moving all classes inside a package higher in the hierarchy)
-Somehow MathOpTest moved

Other changes:

-Removed class TestCode
-Added new logging system of which the design is 0% scrutinized, e.g.
there is no design yet.