Bug fixes: Gradients and Filters

- Support of generic fonts (serif, sans-serif, monospace)
- Initial support of filters
- Fixes to gradient rendering
Text on a Path & SVG Fonts

- Extraction interface for SvgRenderer
- Initial support for Text on a Path
- Initial support for Svg Fonts
- Support for symbol element
- Minor bug fixes with image pattern rendering
- Additional support for Text whitespace modes
Bug Fixes

- Fixing path parsing algorithm to deal with nuanced arc cases and
hopefully improve performance
- Attempts at better memory management
- Working toward getting symbols to render correctly
Merge remote-tracking branch 'upstream/master'
Gradient, Pattern, and Clip Fixes

- Better parser for dealing with parsing edge cases
- Fix corner radius for rectangles
- Fix to gradients.  Most tests now pass
- Add the possibility for a fallback paint server
- Initial fixes to clipping
- Start marking passed test
- Fixes to pattern rendering
Bug Fixes

- Improving rendering of SVG images
- Allow markers on lines, polygons, and polylines
- Implement different line joins and line caps
- Improve CSS handling
External CSS Option for SVGDocument

Added External Cascading Style Sheet Option to SVGDocument.
Precondition test simplification
Precondition test simplification
Removed Trim() condition to allow for whitespace strings
Merge pull request #93 from erdomke/master

Initial Filter, Svg Font, and Text on a Path Support
Merge pull request #98 from sschurig/master

External CSS Option for SVGDocument
merged
Fixed up empty string fix
Inverted test
minor flog
Merge pull request #99 from skyguy94/FixForNullPath

Fix for null path
Performance Improvement

- Because querying the Bounds property of an ISvgBoundable or
  SvgVisualElement is expensive, we introduced an ImmutableBoundable that
  is used by the SvgRenderer. This class stores the bounds of the supplied
  ISvgBoundable so that multiple queries for the bounds do not hamper
  performance when rendering.

- Converted the Bounds property on ISvgBoundable and SvgVisualElement to a
  CalculateBounds method to indicate that it is an expensive operation
  that returns a new value each time it is called.

- Removed redundant ISvgBoundable Location and Size properties.

- Fixed a bug in SvgFragment.Path property by converting it to a method that
  indicates it returns a new GraphicsPath instance when called and by
  disposing of that instance in CalculateBounds. There are many more
  instances of GraphicsPath not being disposed in the code base but we did
  not address that here.