Fix type of name based to :code.lib_dir

`:code.lib_dir/1` may only accept an atom in the future, and should only
be passed an atom according to the spec. Found from the following dialyzer warning from #1569:

```
lib/elixir/lib/record/extractor.ex:22: The call code:lib_dir(app::binary() | string()) breaks the contract (Name) -> file:filename() | {'error','bad_name'} when is_subtype(Name,atom())
```