DT[, c(.SD, …), by=.] optimised, #735 task list 1,2.
setDT over-allocates DT if not 'selfrefok'.
raised 'if' on j-optim check in is.name(jsub)

When 'j' is a symbol, optimisation should happen only if it's .SD.
More .SD optimisations #735 task list 3, 4 and 5

.SD[1], .SD[1L], head(.SD, 1) in `j` alone or along with c(..) are now optimised for speed internally.
Implemented setdiff #547 task list 1. Not exported.

First attempt at setdiff for DTs
Merge branch 'Feature-735'

Conflicts:
	inst/tests/tests.Rraw
Merge branch 'Feature-547'