Adding multi-value presence validation

Given that we are allowing multi-value for a given attribute, we
need to better handle the presence of that attribute.

Consider:

    class MyModel
      # Assume this class supports ActiveModel validations
      validate :contributor, presence: true
    end

    my_model = MyModel.new
    my_model.contributor = ['']
    my_model.valid?
    => true

When in fact we likely mean for it not to be true.

Solution:
    class MyModel
      # Assume this class supports ActiveModel validations
      validate :contributor, multi_value_presence: true
    end

    my_model = MyModel.new
    my_model.contributor = ['']
    my_model.valid?
    => false

[skip ci]
This commit was an amended commit to include a better commit message.
The build that verifies the actual code changes can be found at:
https://travis-ci.org/projecthydra-labs/curate/builds/25186700
Merge pull request #532 from ndlib/fix-validation-on-multi-value

Adding multi-value presence validation
Fixing embargo when visibility is set via default

I am pretending to set a default. In the request cycle we instantiate
the object, then set the attributes via parameters. If the object sets
defaults on instantiation, then this fix ensures that you can set the
embargo release date via the parameters.

Example:

```ruby
class MyModel
  attribute :visibility, default: 'private'
  attribute :embargo_release_date
end

class MyModelsController
  def create
    @my_model = MyModel.new

    @my_model.attributes = params[:my_model]
  end
end
```

@NOTE - It is unlikely that a default embargo visibility and release
date will properly play together.
Merge pull request #534 from ndlib/fixing-embargo-for-default-being-set

Fixing embargo when visibility is set via default
Merge branch 'develop' into update-article-metadata

* develop:
  Fixing embargo when visibility is set via default
  Adding multi-value presence validation

Conflicts:
	app/repository_models/dataset.rb