Add EmptyBagToNullFields

Besides the test for EmptyBagToNullFields, also add a "leftJoinTest" which uses a COGROUP and FLATTEN to perform a left join with multiple variables.  It turns out that EmptyBagToNull can't be used to fix the "flattening empty bag produces no results" issue.  The desired behavior when flattening the null value would be would be for pig to return a tuple having null fields, but instead it just produces a null value.  EmptyBagToNullFields fixes this problem, making it possible to do the left join operation.
Move some useful methods from AliasableEvalFunc to a new base class

Being able to store arbitrary data in the context properties is useful.
Add DataFuException, add debugging to Coalesce

DataFuException can contain useful debugging information such as aliases for the UDF and data relevant to the failure.  This can make debugging easier.

Coalesce now uses this when there is an error casting data to a particular type in 'lazy' mode.
Merge pull request #62 from matthayes/master

Add EmptyBagToNullFields