Bust the template digest cache key when details are changed

Since the lookup details will influence which template is resolved, they
need to be included in the cache key -- otherwise two different
templates may erroneously share the same digest value.
Drying up method_missing code
Initializing Codepoint object with default values
mention controller test base class in testing guide. [ci skip]
Allow attaching to AS::Notifications namespace up front

Before, you were required to attach *after* adding the methods to the
class, since the attachment process needed the methods to be present.

With this change, any new method will also be attached to the configured
namespace.
Merge pull request #12299 from hitendrasingh/code_refactor

DRYing up method_missing code; Initializing Codepoint object with default values
Merge pull request #12285 from dasch/dasch/allow-attaching-up-front

Allow attaching to AS::Notifications namespace up front
Merge pull request #11452 from dasch/dasch/details-in-digestor-cache-key

Bust the template digest cache key when details are changed