Added more tests for ActiveModel::Errors empty? and include? behavior
- `empty?`, `blank?` and `include?` has different logics to detect an error, new test cases demostrate the difference
- Empty String(`''`) and Empty Array('[]') are edge cases, and they differentiate the behavior of the above methods.
Fix the inconsistent behavior in ActiveModel::Errors#count and #size
Given the following code, size and count calculates to different behavior
```ruby
person.errors.add(:name, [])
person.errors.add(:name, '')
person.errors.size
person.errors.count
```

According to the doc, I alias `size` to `count`. When a error is added, it should be reported by `count` regardless of its message type.