pattern matching ignores exceptions if returning success

the idea is that if the caller of l3.setValue is asking for success,
it's probably because the want to try the next pattern if it fails,
and they don't actually care *why* it fails
pattern matching should return success for simple cases...

...such as matching an int so match-when can behave like a simple
switch statment
add an option to l3.getValue for a default if key isn't present
can't be missing keys when matching array against map
add exception handling functions: try, catch, endTry, rethrow