Adds an extra layer of newtype to hide DuoMap.
Adds a class for Newtypes for lifting functions.

Unwrapping and rewrapping the newtype layer adds quite some noise to the code.
To simplify this a 'trick' like the one from the newtype package is used to
make it simpler and less verbose.
Adds a small extraction function.
Rewrite the location map.
Rewrites the value mapping.
Move the ValueMap to a seperate file.
Moves the DefineMap to its own module.
Moves the Location map to a seperate module.
Cleans up the RawSpec module.