Extract out Scalactic macros into separate compilation unit

Extract out as many Scalactic macros as possible, so that they can be used within Scalactic and ScalaTest builds.  (Snapshots and Requirements classes have too many dependencies via Prettifier.)