Improve workflows to use github caches
Created by: zain-sohail
Generally addition of using caches in workflows Parallization of testing of package and fixes for race conditions Addition of dev dependencies so linting can be done
Refer to #151 for more details
Overall, workflows are much faster now Linting: 1m Test: 3-4m (after caching)