Why are there six reading frames if only one strand of DNA is referred to as the ‘coding strand’?
The coding strand refers to the DNA strand with the same base order as the RNA transcript for a particular gene. As one gene is always entirely present on a single DNA strand there are indeed 3 reading frames possible in this strand, with only 1 actually containing the correct codon sequence for this gene.

However when we view an entire genome it is entirely possible for one gene to be present on one strand with another gene present on the other,  meaning that the coding strand for one gene is the non-coding strand for the other. This is why there are 6 possible reading frames for the genome as a whole as both strands can (and do) contain genes. 

As to the ORF, both definitions seem to be in use. In the context of trying to discover genes by looking for long ORFs the first definition is probably more helpful as following the second definition could lead to a lot of falsely predicted genes (for an extreme example a long stop codon free sequence that has no start codons either would be considered a possible gene even though that should be impossible).