Add feature to index with any sequence container or iterator range.

Old key_type template parameter was a sequence container, now it
is the type to be used between links. This allows any sequence
container or iterator pair to be used for indexing the trie,
improving the flexibility of the data structure.

Additionally, in the case where `key_type` is `char`, there are
variations of `insert()` and `find()` that will construct a
`std::string` so `begin()` and `end()` can be used. This is
done through the use of `std::enable_if` so the functions
will only be present when the `key_type` is `char`.