Replace copies of typings in typings/DefinitelyTyped with a Git submodule
Remove CryptoExtras interface

The missing typings for node's crypto module have been
added to the fork of the DefinitelyTyped/ repo under
typings/DefinitelyTyped
Rename crypto.ts to avoid conflict with Node.js' crypto module

The node.d.ts typings references Node's own crypto module using
"import crypto = require('crypto')". Due to the way tsc resolves
absolute paths, this will result in the first file called 'crypto.ts'
along the parent dir hierarchy all the way to '/' being compiled.

An alternative solution would be to re-arrange the source tree
so that none of the .ts files are in a parent dir of the typings/
dir.
Convert sha1opt to TypeScript

Additionally convert the test to import QUnit as a module
rather than rely on globals exported by it.