explicitly use `Dict.size` rather than just `size` in `equal?`

Fixes bug where `true` was incorrectly returned for `Dict.equal?` when
the 1st argument was a subset of the 2nd argument.

e.g:
```elixir
iex> h1 = HashDict.new(foo: 1, bar: 2)
iex> h2 = HashDict.new(foo: 1, bar: 2, baz: 3)
iex> Dict.equal?(h1, h2)
true # OOPS
iex> Dict.equal?(h2, h1)
false # works as expected other way round
```

The code to check equality was checking size (incorrectly), and then
checking to see if every element in the first dict was present in the
2nd.

However, `size` was being used instead of `Dict.size`. This ended up
calling `Kernel.size` instead - and would always return `true`
regardless of whever the actual size of the `Dict` arguments were the
same or not.
Add validity checking for Inspect.Algebra documents
Merge pull request #1734 from madlep/fix_dict_behaviour_equals

`Dict.size` incorrectly returning `true` when left dict is subset of right dict
Merge pull request #1733 from meh/inspect-raise

Add validity checking for Inspect.Algebra documents
Move verify! to an is_doc guard in algebra
Deprecate Regex.captures and String.valid_codepoint?
Ensure &() works on blocks with one expressoin, closes #1704
Update CHANGELOG
Allow apps to be selected in umbrella projects

Closes #1731
Closes #1730
Allow for string names when instantiating or updating records

This provides a great added benefit of allowing to import untrusted
dictionary-like structures without having to sanitize keys before
converting them to atoms, without the risk of running out of atoms.

The performance for atom field names remains the same, string names
are somewhat slower (as expected)
Disallow mixed use of strings and atoms in record initialization/update

This allows provides better overall performance to these procedures.
Merge pull request #1740 from yrashk/record-string-fields

Allow for string names when instantiating or updating records
Ensure both strings and atoms go through the same lookup
Release v0.10.3
Bump to 0.10.4-dev
Improve record docs
Improve Enum docs and optimize ops with negative indexes
Remove deprecated and unused code branches
No need to filter raise from stacktraces
Remove unused types from formatter