make matplotlib and basemap an optional dependency