Add kwargs support for memoize

That way only performance footprint on functions that don't use kwargs should be at decoration

Happy to update docs