ENH: Add value_counts() to DataFrame

+ abstract bin generation from cut to use elsewhere. Panel goes to
ndarray on apply so that's a future TODO.