Enum constants

*This pull request also includes the commit in the pull request for [named enums](https://github.com/ffi/ffi-swig-generator/pull/16). This is to avoid merge conflicts since both modify the same areas of code. They are otherwise functionally independent.*

This adds constants for all enums. It is common practice to use enums for defining sequential constants within C code. This adds each value of the enum as a constant.

For example
<pre>
%module Test
typedef enum {
  FOO,
  BAR = 7,
  POP,
  TART,
} baz;
</pre>

Without this change:
<pre>
  baz = enum :foo,
             :bar, 7,
             :pop,
             :tart
</pre>

With this change:
<pre>
  baz = enum :baz, [
    :foo,
    :bar, 7,
    :pop,
    :tart,
  ]
  FOO = 0
  BAR = 7
  POP = BAR + 1
  TART = POP + 1
</pre>