Fix multiple issues with memory_grep

This fixes the following:
[FixRM:#8118] - Allows the module to be able to enumerate from
multiple processes with the same name.

[FixRM:#8120] - Allows the module to be able to actually read data
from the heap.
Add has_pid? function

[SeeRM:#8123] - Add commonly used function has_pid?. Related to
redmine issue 8123.
These modules should check PID before using it
[FixRM:#8127] - Remove junk code that checks ARTIFACTS again

ARTIFACTS uses OptPath, which already checks the path. We don't need
to do this again.
[FixRM:#8129] - Fix undefined method error in enum_services.rb

srv_conf may not have the 'Startup' key because it's only assigned
in service_info() when srvstart is 4, therefore it's possible to
cause an undefined method 'downcase' error.
[FixRM:#8134] - Handle registry_getvaldata return value properly

registry_getvaldata can return nil, can't always assume it's
gonna throw a string.
[SeeRM:#8135] - Be able to show where store_loot saves a file

If you don't print where store_loot saves the file, it can be a
pain in the butt to find it sometimes.
Use execute_shellcode for novell_client_nwfs.rb
Use execute_shellcode for novell_client_nicm.rb
Make heap grep optional
Fix target ID
Forgot to change var 'filename'
Land #2045, @wchen-r7's fix for memory_grep module
Land #2069, @wchen-r7's patch to print info when using store_loot
Land #2062, @wchen-r7's fix to avoid redundant check
Land #2068, @wchen-r7's fix to initialize variables on windows_autologin module
Land #2064, @wchen-r7's fix for access uninitialized variable on enum_services
Land #2071, @wchen-r7's patch to use the Msf::Post::Windows::Process mixin
Avoid a fix address for the final userland payload
Land #2049, @wchen-r7's had_pid? method work