Preserve invisibility status

The current version of memoise doesn't store the visibility status of the returned value, so even if a function returns `invisible()`, the value is printed:

```R
invis <- function() { invisible(10) }
invis()
# No output

m_invis <- memoise(invis)
m_invis()
# Prints 10 (not expected)

print(m_invis())
# Prints 10
```

This branch fixes it