Various fixes

- System.QueryException: alias is too long
- Duplicate Id error message when using multiple rollups on the same
parent (with different filter)
- Supports optional relationships, e.g. where the reltionship is not
made on a given child record
- Also added some more tests and test helpers