+ by=.JOIN replaces by-without-by
+ consistent "i." prefixes in j
+ more verbose timing in dogroups and setkey
+ 0 and NA now silently skipped in i of := and set()
+ X[Y,colA] now returns a vector, for consistency with documentation
+ X[Y] keeps X's join column in place rather than moving to the front

git-svn-id: svn+ssh://svn.r-forge.r-project.org/svnroot/datatable@1231 edb9625f-4e0d-4859-8d74-9fd3b1da38cb
NEWS item and test for consistency of mult="all" vs "first"|"last" output type and columns, #5378

git-svn-id: svn+ssh://svn.r-forge.r-project.org/svnroot/datatable@1232 edb9625f-4e0d-4859-8d74-9fd3b1da38cb
Merge branch 'refs/heads/r-forge-git-svn-local'
.JOIN changed to .EACHI

git-svn-id: svn+ssh://svn.r-forge.r-project.org/svnroot/datatable@1233 edb9625f-4e0d-4859-8d74-9fd3b1da38cb
Merge branch 'refs/heads/r-forge-git-svn-local'
FR #5205 done - 'duplicated' and 'unique' gain 'fromLast' argument.

+ Appended ?duplicated.data.table
+ Added extensive tests
+ Updated NEWS
Implemented FR #5172 - anyDuplicated.data.table method

+ Tests added + NEWS updated + ?duplicated updated.
Fix for #5423 - DT[, y := y * eval(parse(text="1*2"))] works fine now without needing to wrap it as y * (eval(…))
Fixed an issue with DT[order(…)] optimisation where it's already sorted. 'forder' returns integer(0) for that case. All good now. Thanks Matt.
Fix for #5424. duplicated.data.table errors now for both by=TRUE/FALSE. The help page is updated accordingly.
Added `anyDuplicated` to 'Value' section in ?duplicated.