Implement a genuine Applicative instance

This applicative instance cannot be matched by a Monad instance
atop it. Generally it's considered bad practice to implement
Applicative and Monad instances together if they do not completely
match; thus, we drop the Monad instance entirely.

Since we've already rewritten all of the code to use the Applicative
instance this is a silent update--the tests and example module remain
static.

Finally, now that we're taking full advantage of only having to implement
the smaller Applicative interface we have the opportunity to solve our
analysis problem---we can examine the failures from the entire sequence of
environment lookups and combine all of their errors.

This is the static nature of Applicatives.