Keep better track of resources

[See #1623]
[SeeRM #7692]
Move deletion into #remove_resource

Doing it here means that modules manually calling remove_resource won't
screw up the cleanup
Add a method for dealing with hardcoded URIs
No need to have rescue around a print
Add spec for HttpServer#hardcoded_uripath
Add a class for generating random identifiers

Will be useful for all kinds of things, but brought about in discussions
specifically for Util::EXE in #2037.
Make first char's character class configurable
dlink upnp command injection
Store inverted hash for better lookups

Also clarifies comment about infinite loops
Remove inaccurate comment
Dup before modifying

Because `remove_resource` modifies @my_resources, we can't call it while
iterating over the actual @my_resources. The following snippet
illustrates why:

```
>> a = [1,2,3,4]; a.each {|elem| a.delete(elem); puts elem }
1
3
=> [2, 4]
```

[See #2002]
some feedback included and some playing
session now working
make msftidy happy
HTTP GET
session stuff
small cleanup
Add foreman_openstack_satellite_code_exec.rb

This module exploits a code injection vulnerability in the 'create'
action of 'bookmarks' controller of Foreman and Red Hat
OpenStack/Satellite (Foreman 1.2.0-RC1 and earlier).
Add support to CWE in module references
Change URIPATH option to TARGETURI as per review