Refacotring of encoding logic to support SubIDFs.  Currently SubIDF
decoding is supported.  Encode support is on the way.
 - reworked builder to know block addresses at time of add call
 - const used for tiff header size contant. gofmt changes
 - reworked decodeIFD, groundwork for SubIDF
 - decoding support for subidf
 - moved coder to different .go file
 - deleted structs not needed anymore
 - added encodeContext