Auto merge of #799 - nical:reprc-types, r=glennw
Auto merge of #799 - nical:reprc-types, r=glennw

Make some of the public types more ffi-friendly.

It would make gecko integration a lot easier if some of the types were ```#[repr(C)]```. This patch takes an opinionated stance of making everything that can be exposed to the ffi boundary repr C with an explicit size and explicit variant values for C-style enums.

I know that not all of this is strictly necessary, but when dealing with weird bugs close to the ffi boundary it is very reassuring to be able to look at the type definitions and be certain of their memory layouts and values without having to double-check the rules for both languages.

r? @glennw

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/webrender/799)
<!-- Reviewable:end -->

servo/webrender,servo/webrender,servo/webrender,servo/webrender,servo/webrender,servo/webrender