Refactored to use tagless final style.

This is a starting point for representing the Forth machine in tagless
final style. It currently implement only a few words and is incomplete
in that the top level does not fit together with it yet.
Made it compile and link (up to top level Forth module).

Moved InputT transformer in between StateT and IO.
Moved Target into the Forth state.
Added initialState function to create a Forth state for the interpreter.
Added versions to all external libraries.

Also made a few minor adjustments to versions permitted, in practise
by looking at what haskeline library does.
Moved main Forth module up one directory level.
Updated CellMemory to use new types by tagless final style.
Updated DataField to use new types by tagless final style.
Added variables field lookup map to Forth state.
As WordId is now a proper newtype, added unWordId as a means to convert one to Int.
Added SOURCE-ID, STATE, @ and !.

Variables needed from start are now part of Primitive class.
Implementation of a variable becomes easy, though we have not yet
stored any initial value (or even reserved datafield memory for them).

Allocate fixed word identities in a simple and safe way in Dictionary,
and at the same time get the allocation list to be used by words
allocated later.

Implemented QUIT in terms of docol and a mainLoop to be written.
Added terminal input buffer related variables.

>IN, #INBUF, INPUT-LINE and #INPUT-LINE
Implemented mainLoop for the interpreter.