add optional SourceLocation to Node interface

/cc @josh