Try manually resetting the board:
Before uploading, run Verify.
Hold the reset button and click Upload.
Release the reset button.
If that worked, your board's reset isn't fried, it just isn't receiving a reset via the serial cable. If it failed, either part of the board or MCU may be damaged; something attached to the board may be inhibiting the reset ...
The board was bad. I just replaced it and it now works.
So, to answer my own question, an Arduino board can show up on lsusb and dmesg and yet be faulty. This is what the dmesg output is for a healthy board:
[10492.388028] usb 1-1.4: new full-speed USB device number 13 using ehci-pci
[10492.500520] usb 1-1.4: New USB device found, idVendor=2341, idProduct=...
If the folder is not needed then delete it.
The Arduino IDE uses the folders in the library folder to search for library header files (ie. .h files). It expects one library in each folder. When it see's a folder without any header files in it, it will count this as an invalid library.
I think after all this time, you may found the answers for your question.
But to add some information to this topic incase if anyone opened this question.
Does #include mean that this is a standard library
from either avr-g++ or avr-gcc? As opposed to a standard g++ or gcc
Yes, what is included with avr/ is related to avr standard ...