add interalised commons cli classes (to prevent making "real" impls global classes) remove commons io dependency various fixes/tweeks to core functionality