new way to handle the fill operator

with the new representation we defer the computing of the number of
spaces needed to fill the width of the document until the best has been
chosen
documentation added
new alignment operator

`doc1 :+: (doc2 || doc3)' aligns `doc2' and `doc3' under each other
extract common test interface

all test needing to render a document can inherit from this abstract
class to get a free pretty renderer
documentation added