added within function to return an array of atom indices

within(1,1,0.5) returns all atoms within 0.5 nm radius of position (1nm,1nm) within the model.

within(1,1,0.2,0.3) returns all atoms within a rectangle of width 0.2nm by height 0.3nm,
with the lower-left corner specified by the postion (1nm,1nm).
completed interactive for simple diffusion

Note: This is functional but there are a few issues.
- still want to replace image with SVG
- adding a drop of dye is way too slow - problem with unmarkAtoms() in scripting API
- would like to have cursor change to eyedropper when entering model container
- would like to have the user click in the container to specify the x.y position to drop dye
- would like to have user click on atom to show trajectory rather than have it chosen randomly