Fix attribute hint issue #2804

This is for #2804. Add some code to catch the cases where the cursor is in an error token type but actually either inside an attribute value or after an empty attribute value.
Also add three more extension unit tests to verify the new code.