chore: extract inner classes out of Context into seperate classes
chore: move NiftyLineParameters and NiftyArcParameters closer to SPI

These classes primarly exists to communicate the line/arc parameters to
the NiftyRenderDevice. On the other hand they are used in the internal
package to store these parameters. But they don't belong into the api
package since user code does not use these classes (and should not know
about them). Therefore they have now been moved to a subpackage in the
spi package.

I'm still not too happy with that but at the moment it's a better place
than the api package :)
fix: free context resources when allocating a new one (texture memory)

additionally this adds the dispose() method to NiftyTexture SPI and the
NiftyTextureOpenGL
chore: added Max to NiftyCompositeOperation and use it in path rendering
feat: NiftyLineParameters and NiftyArcParameters removed from SPI

Parameters are now given as simple types in the NiftyRenderDevice calls.
Therefore we've been able to remove the dependencies on the internal
*Parmaters classes from the SPI making everything simpler at the expense
of more parameters in two methods.

The Parameter classes have been moved into the internal package now
where they belong.