Added Origin annotation that allows for access of the originally called method and the calling type.
Added adapter for delegating to JDK invocation handlers. Refactored logic for generating field names to use the hash codes of their delegate instances in order to allow for random or custom field names without breaking the logic of the hashCode/equals methods.