Don't instaevaluate generated body_ functions.

Instead, place them into the context and attempt to render their containing block.

Closes #512.
we use to (pre 2.4) have an isFunction check... perhaps it never worked as intended.... Anyways, this is much nicer since it's on the compiled object and not in the run time ctx object. 

Now that we're in compile time, is it possible (perhaps overkill, might make it slower) to make body functions smarter. Instead of named functions can these be instances of a `Bodies` class. I was never a fan of how `block` was implemented, the strange relationship with `elem` and never liked the fragile calls to `body(chk,ctx)`. This is a pretty big change but some benefits: the implementation stays in dust and not in the compiler (DRYer no need to repeat `.internal`), more extensible if we need to add additional properties, calls to body will be replace with `body.render()` which will always to defined , potentially allows some cleanup to distinguish elem, block, body_0 etc.