Big D3D9 cleanup.

Use bool for return instead of int (many bugs because of that ...).
Remove all use of exceptions, use delayed constructors (due to no
exceptions ...). Drop use of unique_ptr in D3D9 (not really needed).
Don't use std::shared_ptr for state tracker.