Hadamard Matrices And Their Applications