Ensure assembler copies the contents of symlinked dirs

Dependencies located within an umbrella project In Elixir 0.14.x, or dependencies located on disk, use symlinks to avoid the overhead of copying files which are local to your filesystem during compilation. This causes an issue when attempting to generate a release with relx because `filelib:is_dir/1` does not consider a symlink a directory, even when the symlink is pointing to a directory.

I have added `ec_file:is_dir/1` to the erlware commons ec_file project. It leverages `file:read_file_info/1` instead of `file:read_link_info/1` to identify if a node is a directory.

This will ensure that Elixir projects built with Mix 0.14.x can leverage relx to perform OTP releases.