Fix viewport variable scoping

Fix scoping issues using ModuleContext. This ensures that function evaluation is done in context of the root module.

Test case:
```
function f() = sin(360 * $t);

d=80;

cube(10);

$vpd = f() + d + 50;
$vpr = 50 * [ f(), f(), f() ];
$vpt = -20 * [ 2.5 * f(), 0.5 * f(), f() ];
```

The 3rd commit changes the Camera to initialize both perspective and orthogonal distance to the same value.

- [x] Discuss http://files.openscad.org/tests/travis-780_report.html before merging. I think the correct way is to update the test image.