* Electron Version: 2.0.0
* Operating System (Platform and Version): Windows 10
* Last known working Electron version: before commit bb5eecc16cff8053c7b04e0b9396803fbbb8c4df

**Expected Behavior**
Width and height of a window should not change while being dragged 

**Actual behavior**
Width and height become smaller.

**To Reproduce**
Create a window with:
  var mainWindow = new BrowserWindow({width: 1024, height: 880, x: 30, y: 30,
            resizable: false })

Then drag the window.  Width and height become smaller than specified (1024, 880)

**Additional Information**
NativeWindowViews::SetBounds calls SetMin/MaxSize(bounds) when resizable_ is false.  bounds get adjusted to smaller  numbers by WindowBoundsToContentBounds.

shell/browser/native_window_views.cc
wm::SetShadowElevation(GetNativeWindow(),
                         has_shadow ? wm::kShadowElevationInactiveWindow
                                    : wm::kShadowElevationNone);
}
bool NativeWindowViews::HasShadow() {
  return GetNativeWindow()->GetProperty(wm::kShadowElevationKey) !=
         wm::kShadowElevationNone;
}
void NativeWindowViews::SetOpacity(const double opacity) {
#if defined(OS_WIN)
  const double boundedOpacity = base::ClampToRange(opacity, 0.0, 1.0);
  HWND hwnd = GetAcceleratedWidget();
  if (!layered_) {
    LONG ex_style = ::GetWindowLong(hwnd, GWL_EXSTYLE);
    ex_style |= WS_EX_LAYERED;
    ::SetWindowLong(hwnd, GWL_EXSTYLE, ex_style);
    layered_ = true;
  }
  ::SetLayeredWindowAttributes(hwnd, 0, boundedOpacity * 255, LWA_ALPHA);
  opacity_ = boundedOpacity;
#else
  opacity_ = 1.0;  
#endif
}
double NativeWindowViews::GetOpacity() {