Fixed couple bugs in ulink handling

Fixed couple bugs in ulink handling: 

1. Attributes other than "url" (e.g., "role") were being propagated to hyperlink text nodes when source ulink text node was empty.
2. `<ulink>`s were being considered "empty" if they had no text node children, rather than no node children at all. 

Added some corresponding XSpec tests.