DpiCompensationEffect.BorderMode defaults to EffectBorderMode.Hard
CanvasSwapChain handles high DPI

Now follows the same pattern as CanvasImageSource. Swapchain sizes are in dips rather
than pixels, DPI is specified when creating a swapchain (optionally via
ICanvasResourceCreatorWithDpi) and DPI is plumbed through to swapchain drawing sessions.

CanvasSwapChainPanel also now sets the display transform to maintain 1:1 pixel mapping
regardless of DPI.
CanvasSwapChain.ResizeBuffers improvements

1) Added an overload that takes only size, without requiring you to also specify format and buffer count

2) Reordered the buffer count parameter to match the CanvasSwapChain constructor

3) Added ResizeBuffers test to CsConsumer
Refactor: D2DDeviceContext creation now done by CanvasDevice

This removes some duplicated code, enables some testing strategies, and consolidates context creation anticipating pooling contexts.
CanvasSwapChain supports full range of present options

Added:

1) Present overload that takes a sync interval
2) Rotation property
3) TransformMatrix property
4) SourceSize property
CanvasCommandList
Remove ICanvasSwapChainDrawingSessionFactory since we have other ways to inject mock objects into this test.
Fix CanvasRenderTarget constructor to respect the alpha mode parameter
CanvasEffect now always inserts a DPI compensation effect when realizing to a command list
C++ numerics bugfixes

Fix ambiguity with DirectX:: references if used in a scope where there is a different child namespace named DirectX.

Now works in build environments where STL and exception handling is not available.
API cleanup: add some missing properties + fix inconsistent naming

- Added ICanvasBrush.Device property
- Added CanvasBitmap.Device property
- Added CanvasBitmap.Format property
- Added CanvasBitmap.AlphaMode property
- Added CanvasImageSource.Background property
- Renamed CanvasAlphaBehavior -> CanvasAlphaMode
- Reordered CanvasDevice.CreateFromDirect3D11Device parameters to be more logical
- CanvasRenderTarget no longer implements ICanvasResourceCreator
- CanvasSwapChain no longer implements ICanvasResourceCreator
Turn on unused parameter warning for winrt.lib

Yesterday Damyan found a real bug that this warning would have caught, so we should have it turned on.

Decided not to enable the warning for unit test projects, though. Our mock implementations and lambda usage patterns have way too many legitimately unused parameters, and I decided that trying to get rid of all these did more harm than good.
C++ numerics idiomaticifation

Rewrite the C++ numerics implementation in idiomatic C++, replacing the
previous transliteration of the .NET version. This is not yet SIMD optimized,
just more concise and easier to read/maintain. Now relying on the compiler to
inline things so complex methods can be written in terms of simpler ones.

Also found a longstanding cornercase bug in Matrix4x4.Decompose, which Win2D
inherited from XNA. Fixed this in both the C++ and C# versions, and updated
tests to match.
Bump version number to 0.0.10