New: CGContextSetLineDash.
New: CPBezierPath setLineDash: and getLineDash:.

Also includes Cocoa compatible methods for completeness.
Test: dashed and phased CG strokes.
Fixed: Firefox dashed stroke phase support (theoretically).

This fix should in theory make the phase argument work in Firefox, although in Firefox 19.0.2 it doesn't seem to work. Hopefully it'll kick in in a future version of Firefox.
Fixed: CPBezierPath getLineDash: nil arguments, setLineDash:count:phase: argument style.

Previously, passing nil to the first or last argument of getLineDash:count:phase: would cause a crash.

With this change, these references are simply not written to if nil.

Previously, setLineDash:count:phase: took references for its arguments to match getLineDash:count:phase:. This was however wrong and is not what is done in Cocoa.

This fix makes the setLineDash:count:phase: calling convention the same as in Cocoa.