**New features**
- Added new plotting module with custom plotters
- Separated analysis.plotSpikeRaster into analysis.prepareRaster and plotting.plotRaster
- Separated analysis.plotSpikeHist into analysis.prepareSpikeData, analysis.prepareSpikeHist, plotting.plotSpikeHist and plotting.plotSpikeFreq
- Separated analysis.plotLFP into analysis.prepareLFP, analysis.preparePSD, analysis.prepareSpectrogram, plotting.plotLFPTimeSeries, plotting.plotLFPPSD, plotting.plotLFPSpectrogram, and plotting.plotLFPLocations
- Mapped old analysis.plots onto new ones
- Interfaced with LFPkit to enable recording/plotting of dipole current moments and EEG signals
- Added Current Source Density (CSD) analysis and plots
- Enabled selecting a subset of cells to save individual LFP signal from via cfg.saveLFPCells = [...]
- Added cfg.saveLFPPops to store LFP generated individually by each population
- Function to return batch parameter combinations (used for GUI)
- Added jupyter nb tutorials
- Added hippocampus CA3 model example
- Updated SONATA importing
- Improved distributed saving and interval saving (more robust)
- Added mapping of netParams values within cfg (used for batch sims in GUI)
- Extended Action tests to pull requests (not just push)
**Bug fixes**
- Fixed setting cfgMapping nested params when not string
- Fixed defineCellShapes when sec['hObj'] is not a h.Section()
- Fixed bug when using lognormal in string functions
- Added rxdmath to avoid RxD error
- Fixed bug in Tutorial 8 (batch)
- When saving to JSON wait until file exists before returning (to avoid exiting before saving finished)