neuralnyx 0.1.1

A simple neural network from scratch!
Documentation
### To-DO

Things that I plan to do/change upon more time.

* Currently, the wgsl code uses nested arrays. This isn't as performant as it can be and I want 
to refactor all of them to just arrays with index math instead to minimize lookups.

* The project structure got kinda messy- but personally, I don't like the directories with just 
mod.rs either and I need more time to make a decision on this.

* Refactor the generate_wgsl function in a reasonable way without a bijillion parameters.

* ~Implement Fisher Yates shuffle for the batches and targets while keeping correspondent same.~

* Allow custom activation functions and optimizers.

* Allow softmax on layers aside from the output layers, as well as CCE with other activations.

* Allow lower precision mainly for the wgsl side.

* PLEASE BETTER ERROR HANDLING INSTEAD OF `Result<(), String>` OR PANICS

### Bugs

Bugs that I've personally experienced when using this. I have no idea if these can still occur so 
lmk if they do.

* (Only one I'm sure of) There's a UB somewhere since running this on one of my machines, result in 
ridiculously high costs (like 10000).

* I got a "thread 'main' attempted to acquire a snatch lock recursively." where 
the entire program crashes. I have experienced this once randomly and have been unable to reproduce it.

* ~Cost is always 0 when trying to train mnist on a machine of mine. Looking at the raw outputs print 
actual values but costs are somehow 0.~ Magically fixed.

* Weights and biases sometimes turn to NaNs at which the neural network is of course unable to continue 
operating. I've got no lead on where NaNs could happen...