add support for `require` in DSL
refactoring and documentation added
support for Maps added

scala maps are converted into js objects
use map implementation of js-scala

the implementation for maps was submitted upstream to the js-scala
project so it is no more part of Sohva specifically