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
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]
Specs and code changes for OptAddress

handles wierness around Optaddress.
Still need to address isues in optaddressRange

FIXRM #7537
opening specs and fixes for OptAddressRange
More optaddressrange specs and fixes

SEERM #7536
mo fixes mo specs

SEERM #7536
SEERM #7537
integrate with egypt's already better specs
More opt specs
OptString specs and better validation
OptRaw specs
OptRegexp specs
Remove pry from gemfile
Another Error Type needs caught

Different systems throw a different error
Need to rescue that error too
Land #2002, @jlee-r7's patch for better handling uri resources
Land #2137, fixes and specs for Opt containers