Implement Rip.interpret for convenience
Implement Rip::Core::String#to_native
Implement Rip::Core::DynamicProperty#resolve
Improve error output
Wrap native exceptions with Rip::Exceptions::NativeException
Require Rip::Exceptions::Base#location when creating exceptions
Stop capturing wrong call stack
Inline Rip::Core::Base#get
Stub in a basic REPL
Rename local variables for clarity
Implement and test Rip::Core::String.from_native
Refactor Rip::Core::DynamicProperty to optionally not memoize the resolved value
Implement System.Core.{Boolean,Character,Integer,List,Object,String}.@.to_string
Implement System.Core.Lambda.@.to_string

Also refactor Rip::Core::Lambda#bind to wrap the
new lambda's receiver with Rip::Core::DynamicProperty

Allow the dynamic property to memoize only if the
receiver is not a lambda. Previously when binding
lambda where the receiver is also a lambda,
retrieving the receiver would bind the original
(non-bound) lambda
Refactor Rip::Nodes::Parameter#bind to call Rip::Nodes::Parameter#matches? instead of duplicating its logic

Also refactor/rename duplicate Rip::Nodes::Parameter#special_case_for_class?
method to Rip::Nodes::Parameter#special_case_for_lambda?
Display a reasonable string when displaying REPL results
Implement System.Integer.to_string
Implement System.to_string
General code cleanup
Extract Rip::Compiler::REPL#print_result