making sure that :load-path has effect if specified

If load-path already contains paths for old and new version of some
package (in this order), :load-path <path to the new version> will
have no effect when add-to-list is used, so unexpectedly the old
package gets loaded while we specifically requested the new
version. This patch makes sure whatever is specified in :load-path
will be added to the head of the load-path list.
a test case for the previous commit
if :ensure is set, try to install package before testing for availability
global option use-package-skip-availability-check