Revert "Revert "Merge pull request #73 from alphagov/remove_access_to_non_declarable_commodities""

This reverts commit 173caade3511f4722deb5d6a106d89d2237d07d5.
Fix identification of children commodities.

Product line suffixes should not be used when searching for children
commodities.
Extract SearchService subclasses to separate files
Do not exact-match non declarable commodities.

Take into account children presence.