respecting locale collate order in arrange. closes #325

The idea here is that instead of using internal ordering with the C locale, etc ... we make a callback to R to match strings with an integer vector of their order, i.e. with `match( x, sort(x) )` and then we use those numbers in the internal algorithm. 

There's a test based on the data from #325 

The drawback obviously is that we have to pay for `sort` and `match` but at least we do it just once per character vector. 

I'll let you decide @hadley if it is worth it, and so merge this PR. I think it is better like this.