Determine package directories correctly

We must try `load-file-name` first, because the package may currently be
loaded as part of the byte compilation of another package.  Hence,
`byte-compile-current-file` does not necessarily point to the current
package, so me may use it only if there is no current load.