Run FeatureSpec in-process, so that they always use the latest code

(e.g. work properly with runhaskell or GHCi)
Use proper data type instead of String as label
DRY up specs + fix a bug in spec definition