Injectionless DCI in scala with a type macro - initial commit