Refactor memoized method creation into Memoizable::MethodBuilder
Change arity error message to include the method name and arity
Add spec for memoizing a method with optional arguments