Merge pull request #4 from verbitan/master

Remove invalid comment from elfHeader header file 
Refactor Constructor

THis was looking like it was going to be come evil uber function
Binary version of elf2link

The dataobjects are now good enough to create a binary version of elf2link:
script runtime on data.o: 0.35 s (real)
binary runtime on data.o: 0.011 s (debug, real)

data: A Data object that wraps around unsigned char *. This is better than the
      previous method of just holding a pointer to the raw memory as it
      insulates the rest of the code against a change in representation, and
      proides a convienent way to attach function to convert binary into hex
      representation

programHeader: Object representation of a elf program header (instructing the
               kernel as to what bits of the file to load into memory)

reloc: Object representation of an elf relocation entry. This is not yet fully
       supported in elf2link. (Support for libraries is to be implemented first)

General changes: Existing objects now provide a way of converting them into
                 LINK format
Merge branch 'master' of https://github.com/Grauniad/elf-2-link
Define interface for binary reader and position
Hide elfReader behind a binaryReader interface

All the object up to the parser are blind to the reader they are using, ( the
parser is aware of the reader, but is templated on it ).

binaryReader: Define an interface for all reader objects, and a Position
              interface, and base class.

              This allows for more compact constructors on the libLink objects,
              and for greater flexibility as they are now blind to the
              underlying class

All libLink Objects: Remove references to   elfReader and use binaryPosition
                     objects for reading instead. This lays the groundwork for
                     reading in libraries where the objects are blind to the
                     data they are reading in.
Remove invalid comment from elfHeader.h (fixes #3)
Configure section flags from elffile (fixes #2)
Readstring now overwrites its destination string (fixes #7)

An alternative append string is provided.
Resync files

Apparently git doesn't track changes after you add files, these changes were lost and need to be commited
Define a subreader class

This fixes issue #15
Bug in Binary Reader

The position objects returned by the reader object should point back to the
reader that created them, not the underlying reader. Otherwise the meaning of
offset becomes undefined.

This fixes a bug from change 7e4b828
This implements issue #15
New operators on binary position

Fix a bug in binary position: you can now add two binary positions together.

Fixes bug #16
Add comparision to binary positions

Binary position objects can now be compared on the basis of their offsets ( the
behaviour for positions belonging to different readers continues to be
undefined )

BinaryReader objects are now required to implement an End() method returning a
position on eafter the end of the file

Changes required as part of issue #9
Kill the .orig file incorrectly added
Create a new object to handle archive files (issue #8)

A new obect takes a binary position pointing to the start of an archive files
and creates an indexable (by integer index, and section name) array of members;

Members are returned as a binaryReader object can can then be parsed by a
higher level object;

This fully implements #8
Remove ambiguity in name of archive code files

See issue #8
2 Byte Allignment in archive files (issue #17)

-> Archive correctly treats data as two bytes aligned (this only effects the
   end of data sections, since the headers are 8 (file) or 60 (section) bytes
-> Since the standard writer was obsessed with making .a files "readable" the
   section name does not have null char, and must be manually copied into place;
Refactor binary position (fixes #10)

The binary reader object is now simply a file like object.

There is no longer any concept of a position, and a single binary reader object
is used to represent the file like object. It has all the properties of the old
binaryPosition, and has the begin, end, pos functionality of the old
BinaryReader.

elfParser no longer builds its own file object: This needlessly forces us to
template the class. A binaryReader object is versatile enough.

This change has force a minor refactoring (for most files nothing more than
changing the name of a type)  across the libLink library
Add a test file for the archive objects