ThinLens update to use explicit radius argument

*Note: this remains a work-in-progress. WebbPSF `master` does not work for the commit I based this branch at, so there's something else going on.*

Per mperrin/poppy#15, `poppy.ThinLens` now requires a `radius` argument to be given explicitly. 


Some of the corresponding changes are:

**In WebbPSF:**

  - `JWInstrument` gains a `pupil_radius` attribute from the `poppy.FITSOpticalElement` generated in `_getOpticalSystem`
  - NIRCam thin lenses gain a `radius` keyword argument where they are instantiated
  - the `ThinLens` created when `defocus_waves` is supplied as an option gains a `radius` keyword argument

**In POPPY:**

  - `addPupil`, `addRotation`, `addImage`, `addDetector` all return the element they add (allowing API users to retain a reference to any FITSOpticalElements or others created transparently from their arguments)