have `partial` template scope method take/render a given block

This updates the `partial` method of the template scope class
behave more consistently with the `render` method and allows it
to take and then render with an optional block.

This allows you to, with some output capturing, render nested block
content on partial calls.  See https://github.com/redding/deas-erbtags/blob/master/lib/deas-erbtags/capture.rb
(`capture_partial` method) for an example.

This includes a bunch of test cleanups to the template tests to help
make them more readable and maintainable.