Support C-style enums

This adds support for passing C-style enums between Rust and C++.

We use the Rust representation for enums suggested by dtolnay in #132.
Note that as this does not use real enums, Rust code cannot treat them
as normal enums, e.g., by converting them to integers.  But common
uses such as pattern matching remain unchanged.
diff --git a/tests/ui/generic_enum.stderr b/tests/ui/generic_enum.stderr
new file mode 100644
index 0000000..bf267f7
--- /dev/null
+++ b/tests/ui/generic_enum.stderr
@@ -0,0 +1,5 @@
+error: enums with generic parameters are not allowed
+ --> $DIR/generic_enum.rs:3:5
+  |
+3 |     enum A<T> {
+  |     ^^^^^^^^^