* Implement IDisposable and ensure inheritance calls base
* add ImageProcessingContextTests and move some other test classes
* loosen up tests and leave TODO notes
* Added base BokehBlurProcessor class, and kernel parameters
* Added method to calculate the kernel parameters
* Switched to float, added method to create the 1D kernels
* Added complex kernels normalization
* Added BokehBlurExtensions class
* Added the Complex64 struct type
* Switched to Complex64 in the BokehBlurProcessor
* Added caching system for the bokeh processor parameters
* Added WeightedSum method to the Complex64 type
* Added IEquatable<T> interface to the Complex64 type
* New complex types added
* Added method to reshape a DenseMatrix<T> with no copies
* Added bokeh convolution first pass (WIP)
* Added second bokeh convolution pass (WIP)
* Added image sum pass to the bokeh processor (WIP)
* Minor bug fixes (WIP)
* Switched to Vector4 processing in the bokeh computation
* Minor tweaks
* Added Unit test for the bokeh kernel components
* Minor performance improvements
* Minor code refactoring, added gamma parameter (WIP)
* Removed unused temp buffers in the bokeh processing
* Gamma highlight processing implemented
* Speed optimizations, fixed partials computations in target rectangle
* Increased epsilon value in the unit tests
* Fixed for alpha transparency blur
* Fixed a bug when only blurring a target rectangle
* Added bokeh blur image tests (WIP)
* Added IXunitSerializable interface to the test info class
* culture independent parsing in BokehBlurTest.cs
* Performance optimizations in the bokeh processor
* Reduced number of memory allocations, fixed bug with multiple components
* Initialization and other speed improvements
* More initialization speed improvements
* Replaced LINQ with manual loop
* Added BokehBlur overload to just specify the target bounds
* Speed optimizations to the bokeh 1D convolutions
* More speed optimizations to the bokeh processor
* Fixed code style and Complex64.ToString method
* Fixed processing buffer initialization
* Minor performance improvements
* FIxed issue when applying bokeh blur to specific bounds
* Minor speed optimizaations
* Minor code refactoring
* Fixed convolution upper bound in second 1D pass
* improve BokehBlurTest coverage
* use Gray8 instead of Alpha8
* Adjusted guard position in bokeh processor constructor
* Added BokehBlurParameters struct
* Added BokehBlurKernelData struct
* Minor code refactoring
* Fixed API change build errors
* Bug fixes with the pixel premultiplication steps
* Removed unwanted unpremultiplication pass
* Removed unused using directives
* Fixed missing using directives in conditional branches
* Update from latest upstream master
* Update Block8x8F.Generated.cs
* Update GenericBlock8x8.Generated.cs
* Manual checking for files with LF (see gitter)
* Removed unused using directive
* Added IEquatable<ComplexVector4> interface
* Added IEquatable<BokehBlurParameters> interface
* Moved bokeh blur parameters types
* Added reference to original source code
* Complex convolution methods moved to another class
* Switched to MathF in the bokeh blur processor
* Switched to Vector4.Clamp
* Added Buffer2D<T>.Slice API
* Added BokehBlurExecutionMode enum
* Added new bokeh blur processor constructors
* Added new bokeh blur extension overloads with execution mode
* Code refactoring in preparation for the execution mode switch
* Implemented execution mode switch in the bokeh processor
* Moved BokehBlurExecutionMode struct
* Removed unused using directives
* Minor code refactoring
* More minor code refactoring
* Update External
* Fix undisposed buffers
* Bokeh blur processor cache switched to concurrent dictionary
* Minor code refactoring
* Remove multiple premultiplication.
* Use in DenseMatrix everywhere.
* Make private
* Dont convert vector row on first pass
* Remove incorrectly assigned alpha.
* Remove boxing.
* Use correct min row.
* Reorder parameters
* Correctly handle alpha component.
* Update tests
* Use dedicated methods over branching.