Store visibility state of functions called from Observable

This is a fix for #87.

The output of these two test cases is now the same:

```R
funcB <- function() {
  print(environment())
  print(parent.env(environment()))
  invisible()
}
funcB()
# <environment: 0x1051babc0>
# <environment: R_GlobalEnv>

reactFuncB <- reactive(function() {
  print(environment())
  print(parent.env(environment()))
  invisible()
})
isolate(reactFuncB())
# <environment: 0x1052678b0>
# <environment: R_GlobalEnv>

# Subsequent calls are also invisible
isolate(reactFuncB())

# It is returning a NULL
print(isolate(reactFuncB()))
x
# NULL
```

I also added a commit that removes the extraneous `eval.parent` in `isolate`.