some refactoring on trait TransformationExtractor
add DemoteTrans, with refactoring and bug fixes
add transfer transformation
fix bug in ArticulateTrans: parent cannot be POS
fix bug in FlattenTrans: parent shouldn't be POS
fix bug in PromoteTrans: parent shouldn't be POS; parent can have arbitrary siblings
fix bug in DemoteTrans: demoter shouldn't be POS