initial import
Cleaned up unparameterized Collection objects.
Refactored InlineTable, left parser here but moved generic table record storage and traversal to new SimpleTable class.
More graceful handling of missing jeplite library.
Increased recursion depth limit to 17.
Added @SuppressWarnings directives as nec. to achieve warning-less compile.
changed all "sha" references to "sha1" for clarity.
New features:
 * Literal blocks w/ {^literal} no interpolation {^}
 * Dynamic tags with backticks {~pkg_`~pkg_id`}
 * getSnippet(templateRef) now returns Snippet obj
     - use fetch(templateRef) to get tpl as string.
* Chunk can now find and use templates that are packaged inside a jar on the classpath.
* nodata="" now supported by ^loop and ^grid tags.
* xml,xmlesc,xmlescape now synonyms for htmlescape
* implemented perl case-conv regex directives via hack: s/.*/\U$0/ now working (but {~tag|uc} is still quicker)
fixed a bug related to supporting in-jar templates.  chunk now requires your jarred template to be placed in the jar in a folder named "themes."
Chunk now supports a cleaner block-style syntax for loops: {^loop}...{^on_empty}...{^/loop}
This may open the door for some other block-style tags in the future.
* now allowing prettier include syntax {^include abc#xyz}
* added indent(x) filter, optional 2nd arg is indent char (default is a space).
* if tag value was another chunk, filters were not getting applied. fixed.
* New "^if" tag will help make templates more readable.
* An honest-to-goodness JUnit test suite with unit tests!  Why did it take this long to think of this?
* Smarter automatic theme location, checks for resources in same resource path as calling class.
* New Block-Loop construct extended to allow in-block definition of join-style {^divider} template.
* Fixed Chunk bug, specials would not work if Chunk was created via Chunk constructor (not typical/recommended usage, but this does happen in the test suite).
* Quick-calc exponent/power was not working, fixed.
* New filter HEX to get dec-to-hex conversions back in all caps.  Cheaper and prettier than {~value|hex|uc}.
* changed "smart" trim handling of {^if} and {^loop} blocks after doing some field-testing.  now even smarter.
* changed {^on_empty} loop block marker to {^onEmpty} to maintain consistency with {^elseIf} and {^includeIf}
* end-of-block scan now eats final post-block linefeed (if present), resulting in cleaner output.
* updated tests to reflect new smart-trim behavior.
Template parser now does a final pass over the template to remove/flatten {^loop} and {^if} block tag indents.

This "smart unindent" feature means that template sources can be indented and readable, while at the same time output will be free of unintentional indenting artifacts.  Have cake, eat too.
* Still getting a feel for "right" smart-trim behavior.  Made ^if more consistent with ^loop, smart-trim just trims the first newline, if present.  Updated test suite.
* Augmented block tag processing to handle nested {^if} blocks.  But, not ready for nested {^loop} blocks just yet.
* Implemented support/tests for nested {^loop} blocks.
* |selected() filter now takes optional second arg for an alternate output when first arg is matched.
  eg when ~id == 3:
    {~id|selected(3)} => selected="selected"
    {~id|selected(3,**)} => **
* If cond tag comparisons were failing when tag value resided in ancestor stack.  Fixed.
default extension is now .chtml
fixed glaring bug in if block tests referring to tags defined in parent chunks
moved to more familiar ~x.whatever syntax for prefixed tags.
better error messaging on mismatched block tags.
* Got sick of {^/loop} and {^/if} end-tag syntax, added easier-to-type variant {/loop} and {/if}.
* Theme now has new constructor that assumes default themes location and just needs a list of theme layers.
Updated tests to reflect new end-tag syntax.
Changed theme to lazy-init to allow setting extension directly after constructing the Theme obj.
Made {^literal} {/literal} syntax more consistent with other block tags.  Cryptic {^^} {^} syntax still supported for back-compat.
Fixed bug in handling of uncapped literal blocks.
New {/literal} block-end syntax not being detected properly in template pre-processing stage. Fixed.