Implement multi enums feature

DESC: Feature

[DONE]
1. Add an option "multi" to turn on the multi-enums mode.

2. Add three accessors Multi::Accessor, Multi::IgnoreAccessor and
Multi:: WhinyAccessor to handle the multiple enums.

3. Move the common Accessor methods to AccessorBase, here is the current
class graph:

AccessorBase <-- Accessor <-- IgnoreAccessor
              |            |_ WhinyAccessor
              |
              |_ Multi::Accessor <-- Multi::IgnoreAccessor
                                  |_ Multi::WhinyAccessor

4. "scope" is not supported in the multi-enums mode.

5. Add an example in README.

6. Add rspecs for testing the multi-enums mode. All new specs are put in
spec/simple_enum/multi_enums/ .

[TODO]
1. Haven't tested it with mongoid db.
Change the "selected?" behavior in the multi-enums mode

DESC: Change

1. Return true if stored keys include all given keys, otherwise false
is returned.

Please reference the spec for examples.
Fix typo in mongoid spec

DESC: Bugfix
Add missing tests

DESC: Bugfix
Merge pull request #1 from sibevin/feature-multi-enums

Merge multi enums feature to master