Add Enum.integer_values to return an array of all defined int values for an enum
Extract spec/support proto building to rake task, call from spec_helper
Add support for generating enum's with `option allow_alias = true`
Add Optionable module to provide option setting support for Enum
Use Enum.fetch instead of custom coercion outside of Enum class
First cut at an Enum API refactor

== Aliases

Extend Optionable module to get class-level option management. This
allows us to support the allow_alias protobuf option in libprotoc
v2.5.0.

Adds methods to return an array of EnumValue objects corresponding to a
given number "value".

== "Value"

The term "value" is used to mean multiple things in the Enum
implementation: 1) an EnumValue object, and 2) an integer commonly
called a tag number.

This cut attempts to use the term "number" for arguments when the arg
should be number-like, and use the term `enum_value` in methods and
comments when we are referencing the actual object type. All method
name changes are aliased to their old names.

Ideally EnumValue would not be separate from Enum. I'm not willing to
make that cut here, possibly in a future API refactor cut.
Merge branch 'master' into bj/enum-values
Replace custom lifecycle with AS::Notifications
Merge '2-8-stable' into devin/as_instrumentation
Revert unintended change

Not sure why this got deleted. It was not intentional
Provide a friendly transition path

This will warn users that Lifecycle events are being deprecated in favor
of active support notifications.
Make deprecation warnings more visible
Fix whitespace error
Use $stderr to print deprecation warnings
Modify $LOAD_PATH in lib/protobuf/descriptors so that other plugins may use the descriptors in their own protoc-gen-foo compilers
Add console task for development funsies
Add protobuf:compile rake task for external use

The `protobuf:compile` task can be utilized in any project or gem that
uses protobuf. Open up the Rakefile of the including project and add:

```ruby
require ‘protobuf/tasks’
```

The `compile` task accepts three arguments: package, source, and
destination. Package does not have a default value and must be
specified. Source’s default is ‘defintitions’. Destination’s default is
`lib`. Plugin’s default is `ruby`, and is overridable in case you want
to utilize the descriptors to make your own plugin generator.

The composed command to protoc is printed to the terminal and then the
process is exec’d with that command.
Add protobuf:clean task for external use

To get this task simply `require ‘protobuf/tasks’` in your Rakefile.

Clean will ask for confirmation of removing previously compiled pb.rb
source files. You can skip the confirmation step by providing
PB_FORCE_CLEAN=1. A force clean is automatically invoked from the
`compile` task unless PB_NO_CLEAN=1 is specified.

The package argument must be specified. The destination argument
defaults to `lib`.
Merge pull request #139 from devin-c/devin/as_instrumentation

Replace custom lifecycle with AS::Notifications
Merge pull request #141 from localshred/bj/plugins-stable

Make it easier to include descriptors in external gems