Tree Data Model

Move links over to a tree-based model:
* Upon receiving a url, it's now broken down into protocol, domain and path. (URL = protocol + domain + path)
* If the domain hasn't been seen before, we create a new document with that domain.
  * This is now the parent for all future paths coming from that domain.
* After this, or if the domain has been seen before, we create a new document with the domain as its parent. This document contains path, protocol, user and count.