Some Category Axis changes

to bring it more in line with baseAxis. 

- changed from tickLabelsG to tickLabelContainer
- change hard coded "tick-label" to Abstract.Axis.TICK_LABEL_CLASS
- added formatters (default is identity if unspecified)

Refactoring the tickLabelPositioning seems very complicated due to the different assumptions that numeric and category axes make about their labels, so I'll put that off for now. 

close #644 
close #635
Please fix the JSDoc to account for the `formatter` parameter.