bug 947956- [camera] Support camera.sensorAngle

This patch will work correctly only on partial devices before bug 949930 is fixed: For testing please use Hamachi, Fugu, Helix, or Flatfish. see [1].

* `previewWidth` and `previewHeight` now indicates actual raw preview size, no matter what `sensorAngle` is.
* similarly, `screenWidth` and `screenHeight` now indicates actual screen size, no matter what `sensorAngle` is.
* the **preview dimension in direction of screen** (preview dimension rotated by sensorAngle) is now called `previewBoxWidth` and `previewBoxHeight`.
* also since we calculate rotated size by function rather than switch width and height now, I think we can now calculate aspect ratio by more common way, ``Width / Height``, rather than ``Height / width``.
* Calculate rotated dimension (i.e. bonding box dimension) by trigonometric functions to support every rotation angles.
* Move transform center of viewfinder to `50% 50%` to make countering the position easier.

[1]: https://bugzilla.mozilla.org/show_bug.cgi?id=949930#c17