fix uninstall for ruby 2.0, multiple uninstall stanza, more

- fixes #4784, and standardize Array coercion on `uninstall` directives
- fixex #3440, allowing multiple `uninstall` stanzas to work correctly
- make DSL more lenient
- improve debug messages
- speedups