Set SPARK_PUBLIC_DNS in spark-env.sh and .bash_profile

This will help in two ways:
- Scripts like bin/start-all.sh will always see it instead of relying on
  heuristics (e.g. does the hostname begin with ec2)
- User applications run from the command line will also see it, and will
  report correct application URLs to the cluster scheduler