Fix backbuffer RTV not recreating properly if Desc->Format is UNKNOWN

* Judging by the error reports that pointed to this crash, this happens
  with the Dolphin emulator.
Fix default capture options not being applied in 0.20 and above

* These capture options used to be propagated through from the C++ struct
  when there was a C++/CLI dll used for interop between C# and C++. Now
  that we use P/Invoke this needs to be added back so a couple of default
  options can be enabled
Handle IO errors while reading/writing config file - crash report fix
Speculative fix for crash report NullReferenceException in OnInject
Remove texture alignment tracking and save texture units in initial state

* Tracking the alignment was pointless and it isn't implemented yet anyway.
* Relevant state should be saved at the start of each captured frame, so
  include the active texture bindings in this
Serialise glActiveTexture during frame captures
Add GLRenderState class to track GL state vector

* Use it to serialise in/out initial state at the start of each captured
  frame.
* Serialise active texture and buffer bindings (indexed and non-indexed).
Serialise out glBindBuffer{Base,Range} and glBindFramebuffer
Implement glBindSampler
Serialise blend functions and blend state
Implement glCheckFramebufferStatus