Rename CanvasBitmap.SizeInDips to CanvasBitmap.Size

This:

a) makes it consistent with XAML where, so "Control.Size" and "CanvasBitmap.Size" use the same units.

b) guides developers to use DIPS.  Previously the choice between "SizeInDips" and "SizeInPixels" made DIPS and Pixels seem as if they're equally preferred, leading to a trap of using pixels.  Since pixels happen to equal dips in many cases this opens up for surprises when run on displays where they don't.
Wording tweaks
Drawing session offset needs to account for the dpiScalingFactor
Add BlendEffect, CompositeEffect, SaturationEffect and Transform3DEffect
nuget version number now centralized in VERSION file

build-nupkg now treats its first command-line argument as a pre-release version string to append to the version number
Bump the nuget package version
build.cmd now generates "local" prerelease packages
Remove build\* files from Win2D.sln

These are not needed for typical .sln user workflows, and just clutter up the
UI (especially since they're sorted alphabetically first), obscuring the more
interesting projects and tests.
Consistent formatting of C++ {} initializers

We were inconsistent about Rect{ x, y, w, h } vs. Rect{x,y,w,h} formatting.
Being nitpicky and perfectionist, this bothered me :-)
Now code is the same everywhere.
Chose the style with more spaces because that matches the VS auto formatter.
Enable /W4 level warnings, and fix the resulting issues
Remove Direct3DSurface / Direct3DDevice runtime classes.  Expose the interfaces instead.

This allows a CanvasDevice or (in future) a CanvasBitmap to passed immediately to anything that can accept an IDirect3DSurface/Device without needing to go through an intermediate property.
Documentation updated for DXGI device / surface API changes
Remove GetDXGIInterfaceFrom* global functions

These are no longer necessary now that IDXGIInterfaceAccess is exposed.
Add code generation tool for effects
Allow drawing sessions to be created from CanvasBitmap.
CanvasBitmap & CanvasRenderTarget now MixIn CanvasBitmapImpl.

This fixes interface transitivity (ICanvasRenderTarget -> ICanvasBitmap -> ICanvasRenderTarget now works correctly).
Mechanism for reporting nice error messages along with exceptions

This change ended up being much smaller than I was anticipating. Original plan
was to hook into the existing D2D debug layer, but there turns out to be no
easy way to do that, so I moved that down the backlog for deeper investigation
at some later date.

Plan #2 was to recognize D2D error HRESULTs and map them to nice strings, but
it turns out WinRT already does this automatically. Who knew :-) Wish I had
before I wasted most of yesterday writing and then ripping out my own redundant
version of the same thing!

So instead we end up with just:

- ThrowHR() overload that lets you pass a custom string

- WinStringBuilder helper for fomatting custom strings

- Strings.h for defining text strings in a standard place (someday this should
  probably become a localizable resource, but the current approach is simple +
  good enough for now)

- CanvasEffect uses this new mechanism in just one place. We have other backlog
  items for adding better error messages elsewhere - the goal of this change is
  not to address all of those, but just to establish the pattern and
  infrastructure needed to do so. I made the one change in CanvasEffect simply
  to prove that the mechanism works for real.
CanvasStrokeStyle.DashCap defaults to Square rather than Flat

Dots are not visible when DashCap is Flat (they have zero size),
which can be a confusing result. Defaulting this to Square makes them
visible by default.

Also updated documentation to explain the behavior of DashCap = Flat,
and added text explaining it to the strokes demo in ExampleGallery.

This addresses https://github.com/Microsoft/Win2D/issues/14
Bump NuGet package version