Merge branch 'release/0.50.0' into develop
refactor stringy types to be lower case (field / crd types, centers)

In all instances, if statements that compare to a string call lower(), so case of arguments can be arbitrary
refactor field.field_type_from_str -> field_typ, and now subclasses of Field can be passed through for convenience

also add convenience [empty,zeros,ones]_like functions
fix unbound var if file DNE
some verrors now derive from more expected exceptions… maybe these shouldn't exist (bad field lookup just raise a KeyError, etc.)
drop old / unused tools package
add comment to subclass_spider
remove readers.load in favor of singular load_file and plural load_files
regen cython code, test
refactor ncomp -> nr_comps
refactor n_points -> nr_points
refactor n_times -> nr_times
all around field rewrite

refactors coordinates dims -> nr_dims

next steps:
- standardize field slicing
- tidy up the interface for getting coords
more tidying up
rework how to get crds, now the methods are the same for grids / fields / crds
fixup field and crd slicing, now they follow more the numpy behavior
add simple downsample by 2
Make some failure messages more clear && _parse_slice_str -> _parse_slice, but it's private, so shouldn't affect anything
clean up calls to deprecated load()
playing with plotting streamlines