Quandle Homology Theory and Cocycle Knot Invariants