refactored and implemented naive, last_occ, mp, kmp and boyer_moore
refactored algorithms to seperate classes with search interface