PETSC_ROOT now sets NO_DEFAULT_PATH

Allows a specific PETSC_ROOT to override and replace default search paths. Now,
if PETSC_ROOT is passed and the find_library calls cannot find the libraries,
the makefile will only search in user provided directories.
Simplifcations in FindPetsc logic

Removes a lot of the conditionals in the makefile. As reflected in the
comments, find_* won't run if the target variable is already set, and appending
empty list elements changes nothing. In order to make reading the file easier
these conditionals have mostly been removed.