add support for direct reg access to pymeterpreter

When testing this, I found that the python meterpreter hangs running the
following, with or without these changes.

```
use exploit/multi/handler
set payload python/meterpreter/reverse_tcp
set PythonMeterpreterDebug true
set lhost 192.168.43.1
exploit -j
sleep 5
use exploit/windows/local/trusted_service_path
set SESSION 1
check
```

This turned out to be that pymeterpreter ate all the rest of the data in the
recv socket by consuming 4k unconditionally. This would only be exposed if
there were multiple simultaneous requests so the recv buffer filled beyond a
single request, e.g. when using the registry enumeration functions.
add service_info_list, efficiently get services

service_info_list combines service_list and service_info, which is how most
modules use it anyway. This allows getting all of the service info in parallel,
speeding up the operation and removing extra round-trips to get duplicate
information.
update modules to service_info_list

Remove duplicate service_list/info calls or open-coded registry retrieval.