Allow iteration through named subgroups of Capture object

Currently there is no way to get the names of the named subgroups from a captures/match object (afaict). This patch allows the user to iterate through the captures object and get all named group names and values.

I've no idea if this is the best API, but even if this patch isn't accepted, it'd be really useful to have some way of getting the names of the named subgroups in a Capture object.