Practical Algorithms and Fixed-Parameter Tractability for the Single Individual SNP Haplotyping Problem