SourceLoc and SourceRange classes with complete iterator and range interfaces