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
Might consider changing these to use `Plottable.Abstract.Axis.TICK_LABEL_CLASS` for consistency.