Do not attempt extension build for legacy repos

For legacy repositories, RubyGems would try to build extensions that
were already built.  This would result in confusing failures to load
gems with confusing messages.

Now RubyGems does not attempt to build extensions when the "extensions"
directory does not exist for the local repository and the repository
root is not writable.

See #596
Expand destination_dir for install location

When File.realpath is missing (ruby 1.8) RubyGems will report that a file
is being installed outside the install location when $GEM_HOME contains
"..".

Expanding the destination directory while determining the install
location avoids this false-positive.

Fixes #679