Update readme and improve general consistency

Now pushing empty matching groups into the keys array and asterisk matches will come out as `undefined` instead of empty strings when nothing matches (making it consistent with the optional matches). Updated readme to reflect all available options, but please review the text and make sure I'm not being overly verbose or missing information.