OptionalAttribute, AppendIf, WithAssemblyPath

Added three new extension methods. OptionalAttribute makes parsing an
xml file easier, AppendIf conditionally appends one string to another
and finally WithAssemblyPath returns a full path for a file name located
within an assembly directory.