Trie routing

- Adding some comments about what still needs to be done
- Switching to ```SmallIntMap``` instead of ```HashMap```
- Cleaned things up a bit
 * Renamed ```TrieNode``` to ```TrieRouterNode```
 * Gave ```TrieRouter``` responsibility for building the trie
 * Made ```new``` the constructor for ```TrieRouterNode``` instead of ```setup```