gas: Write out data to track .org / .align usage.

Adds support to the assembler to write out data for tracking the use of
.org and .align directives.  This data is collected within the assembler
and written out to a section ".avr.prop" (if there's anything to write
out).

Right now there are no consumers of this data, that will come in later
patches.
objdump: Add support for printing out .avr.prop.

This adds a hook for dumping the contents of .avr.prop in a structured
way.
First stage of using directive data.

Reads the data in an associates it with the section to which the data
applies.  Still no use is currently made of the data.

Make use of directive data.

This uses the .org and .align directive data to ensure that these
directives are left in place.
This is the simplest use of this data to achieve a correct result.  We
can do better in the case of alignment, but in order to achieve this
we'll need to gather all the deletions together and execute them in one
go.  This will require further reworking.

Add support for .align directives.

Now support for moving .align directives backwards if we've deleted
enough bytes before the directive that the alignment requirement can
still be maintained.

merge with c17fce3b8832cec9a33c1861e78cd6f7730aa93a

merge with c17fce3b8832cec9a33c1861e78cd6f7730aa93a