Use consistent types for window dimension and pos
Fix saving window positions with multiple screens

With a multi-screen setup, pixel coordinates are expressed relative to
the top left of the system's default screen. This means that, with two
screens where the default is on the right, the x-coordinates of the
pixels on the left screen are expressed as negative integers. So we
cannot assume that valid window positions are only zero or positive.

Negative positions were being used to represent 'no specific position'
as a default. That means that when the windows are created for the
first time, we let the operating system decide where to place them.

As we should not be using negative positions for this purpose, since
they are in fact a valid range of pixel positions, use nullable types
instead. The default 'no specific position' is now expressed when the
positions are null.

Unfortunately, we still need to handle the special case where the
window position is stored as -32000 in the config file. This was
the previous default position for non-main windows (timer window,
opponent window, and player window). If the user has already used
the previous version of this application, but has not yet opened
a non-main window, they will have -32000 stored in the config file.

We obviously do not want to just blindly use this otherwise valid
value as it will position the windows far off the screen for most
users. This is a bit of a hacky solution, but without config file
versioning, or telling users to recreate their config files if they
experience the issue, we don't have any other way around this.
Fix typo
Add config file version tracking

We save a CreatedByVersion string in the config file. With this in
place, we can determine which version of the application wrote the
config file when we load it. This allows us to change the semantics
of config variables in the future and have a mechanism for handling
it without breaking users' legacy config files. We are able to
interpret and update users' legacy config files to current semantics.

If the version doesn't exist in the config file, we assume it was
created prior to this commit.

With this in place, we can remove the hacky handing of when default
window positions were being stored as -32000. We no longer need to
handle this as a special case with the new multi-screen support.
See changes to OpponentWindow.xaml.cs, PlayerWindow.xaml.cs, and
'TimerWindow.xaml.cs'.
Make default window height logic more sensible
Remove PlayerWindowL default accidently added
Merge branch 'pr/n124_dvide'

Conflicts:
	Hearthstone Deck Tracker/Windows/TimerWindow.xaml.cs