Issue title: tinplate doesn't work properly on newtypes
 Issue body: The detection for atomic values using the `rec` parameter is also triggered by nested newtypes, or single constructor/single field datatypes:

```
newtype Test a = Test a deriving (Generic, Typeable)

> mapMOf_ tinplate putStrLn ("hello",[(2 38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5 Int, Test (Test "world!"))])
hello
```

 Comments: 
 Comment 0: ``` haskell
{-# LANGUAGE DeriveDataTypeable #-}

import Control.Lens (mapMOf_)
import Data.Data (Data, Typeable)
import Data.Data.Lens (tinplate)

newtype Test a = Test a deriving (Data, Typeable)

main = mapMOf_ tinplate putStrLn ("hello",[(2 38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5 Int, Test (Test "world!"))])
```

generates

```
hello
world!
```

 Comment 1: I mean the `Generics.Deriving.Lens` one, sorry for not posting a full example!

 Comment 2: Candidate fix in 87542aa7881d523d2b044b892f07d123d12e2fbb

 Comment 3: fix merged, thanks for noticing the bug

{'source': 'GithubIssues', 'repo_name_with_owner': 'ekmett/lens', 'issue_id': 40437806, 'repo_stars': 1881.0}