rename FuncHandle to Function and get_groups_of_functions to get_function_groups
update readme with an introduction to using the abstract interface