Updated to produce external-cache-hash

Due to the speed of python, it made sense to have the script do all the heavy lifting, i.e. produce the entire file cache json so that it only needs to be run once, reducing the run time of project cacheing
Fixed read only bug with occur at point
Updated to reflect new structure

With upcoming changes the 'external-cache-hash' variable will actually becomee
a string keyed alist, this changes the maphash to work with the alist instead
Removed save hook to add current file to ext-lib

It assumed that the structure was a hash. With the increased speed of the python script, it is easier to just refresh the project than try to maintain it with save hooksc
Added tutorial to be ignored
Use the new external-lib-alist rather than hash
Made shell command asynchronous
Renamed to external-lib-alist
Added project key map C-c p and bound keys

Bound project-change and project-refresh to the project specific key maps
Major refactor to use new python script

Major refactor which simplifies the project setup and change by delegating all of the file finding to the python script in one run.
Asynchronous shell command speeds up the creation of tags as well.
Removed any logic around cacheing as there is no point with the improved speed
*WARNING* file-cache-add-directory-using-python is currently broken
Removed function as unnecessary