gas: Initial support for .org / .align with linker relaxation.

This is a prototype for supporting .org and .align for AVR with linker
relaxation.  The first step is collecting information in the assembler
and packaging it up to pass to the linker.

This patch tries to do this collection of information, and writes out
the data into a support section ready for the linker to consume.

This work is not complete, and requires more development, cleanup, and
testing.
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.