wrap most instances of throw, and terminate on builds where exceptions are disabled
consolidate windows crypto provider into single header