Moved: attributes.h to public interface
Fix: Include guard in attributes.h
Added note in attributes.h on why the header is public
Add nonnull attributes to set header