Remove top-level concept of form groups

Translators shouldn't be providing such a simple translation of data
that isn't even theirs to begin with.

Also helps with future fixing of class vars.
Remove class-level map variable

Translators are now given a map on a per-instance basis to eliminate
potentially hard-to-debug race conditions when maps change based on
context (user role, object type, etc)
Update docs to reflect new `using_map` API
Extract matcher logic
Store data for unknown groups in ingest form

- Modifies attributes= to allow any *_attributes key to build a group
- Heavily refactors attributes= tests

Allows for internal groups to be modified at any time, as the form
stores all groups but only exposes methods for the valid groups, and
hides invalid data from the associations method
Store group-related data on ingest form instance

Removes class variable usage and allows ingest form instances to have
more fluid definitions where data is always there, but not easily
accessed unless groups are defined.
Update README to reflect internal_groups changes
Merge branch 'feature/kill-class-vars'
Add comments
Bump to 2.0.0

Last flurry of changes totally breaks the API, plus it makes the
system seem like it's a lot more mature than it is