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.
I'd prefer to wait on shallow copies here