Mainly changes to 'forder' w.r.t. "descending" order

+ forder(DT, by=c("x", "y"), order=c(1,-1) is possible now. This sorts x first in ascending order and then y in descending order.
+ Implemented reference based wrapper functions 'setorder' and 'setorderv' functions (and exported).
+ Added extensive tests - about 700 tests with all possible combinations of ordering.

- Tests don't include NA and NaN though (hard to compare with base:::order). Marked as TODO.
- Needs `?setorder` and `?setorderv` entries. `?setkey` seems too dense already!
- Yet to implement - optimisation of `DT[order(x, -y, z)]` to use internal fast order.
- Haven't updated NEWS yet. Will do after finishing these tasks.

git-svn-id: svn://svn.r-forge.r-project.org/svnroot/datatable@1205 edb9625f-4e0d-4859-8d74-9fd3b1da38cb