Sniper scope improvements, binoculars

Sniper rifle zoom now adds a client.pixel_x/y offset in addition to zoom. Currently 11 tiles in the direction the user is facing, keeping the user in the field of view, one tile away from the edge. Zooming can now be done through the right-click menu.

Binoculars added. Functionally similar to sniper scope. Adminspawn-only for now.
Using 'locate(bar) in foo.contents' seems to be more reliable than just using 'in foo'. Pretty sure locate(foo,bar) will just return you a value of foo anywhere in the world and ignore bar.