Fix for FR #2356

as.data.table.*(x, keep.rownames=TRUE) where "x" is a named vector now adds a new column with default name "rn"
Fix for FR #4996

X[Y, col := value] when Y has no match is now caught early and X is simply returned. When "col" is an existing column, key(X) is not set to NULL as there was no update.
Fix for bug #5114 - .SD is locked error in some cases

`DT[, .SD, .SDcols="y"][, y:=as.numeric(y)]` resulted in ".data.table.locked=TRUE" error.
Fixed and tests added. NEWS updated.
Fix for bug #5115

set() and `:=` not able to add columns by reference on objects of class that inherit from data.table. Tests added and tested successfully. NEWS updated. This was a consequence of fixing `set()` to add new columns by reference (C implementation) fixed in commit 1024.