improvements in optimal alignments generation

1. added recursive function for generating all optimal alignments
(get_backtrace_path_recursively)
2. added alternative method to call that recursive function
(distance_path)
3. added usage example
this commit doesn't take into consideration comments on previous code
version