unique names for data.table + lag for unbalanced panel

-  solves issue #615 
-  proposes solution for bug when object in the global environment is called `dt` or `vars`. 

````R
   library(dplyr)
   library(data.table)
   DT <- as.data.table(mtcars) 
   dt <- 6
   DT %>% filter(cyl==dt)
````
Solution is is only implemented for filter_.data.table and filter_.grouped_dt  as I was not sure it was the right way to do it.
This seems to be tangled up with your inplace PR. It's better to do each PR in its own branch to avoid this problem.