adding cache invalidation + tests for get_groups() for #53, removing unnecessary comment, fixing minor lint issue and better validating that cache_timeout is a number before doing math with it