Copy constructors in the Closure classes now use clone instead
Moved all of the DynamicVariable classes to com.dritanium.indirection

This makes the libraries easier to follow and keep track of in an IDE.
Added the moved indirection classes to the repo
Moved DynamicFunction back into the delegates package

I didn't realize I had moved it
Moved Closure and NonLocalClosure to the indirection package

All of the corresponding classes that depend on those classes have been updated
to reflect the change.
DynamicFunction implements Delegate instead of Runnable now

Since Delegate extends off of Runnable and DynamicFunction implements invoke, this change makes
perfect sense.
Removed unnecessary imports from DynamicFunction
Added the IntelligentDelegate interface.

This interface is meant to provide facilities for type checking
Removed typeAreCorrect from IntelligentDelegate
Added the TypeCheckingException type

This is thrown when a type check fails during the execution of an intelligent delegate
Added returnsNothing to IntelligentDelegate

This method checks to see if the return type is Void or null. If so then nothing is returned.
However, to maintain simplicity, the value null is returned.
IntelligentDelegate no longer provides functionality for return type checking

This has to do with the difficulty of handling null values in a dynamic sense.
Added AbstractIntelligentDelegate

This is an abstract class that implements IntelligentDelegate
Fixed typos and implementation details for IntelligentDelegate and AbstractIntelligentDelegate
Added DefaultAbstractIntelligentDelegate

This contains the a default implemenation for the logic behind the run() method
Added a test for checking to make sure that the default Delegate interface works as intended
Fixed an issue in checkInput

I was getting the type of the Class object which is always class
Added a check for checking intelligent delegates
Added a check to make sure that the run method works in DefaultAbstractIntelligentDelegate
Added a test case for checking to make sure that closures are working correctly.