Add ability to reference another post in a thread

Give the user the ability to reference another post in the same thread, e.g.:

```
<iq from="juliet@shakespeare.lit/balcony" to="channels.shakespeare.lit" type="set" id="publish:20"> 
   <pubsub xmlns="http://jabber.org/protocol/pubsub">
      <publish node="/user/romeo@shakespeare.lit/posts">
         <item>
            <entry xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:activity="http://activitystrea.ms/spec/1.0/">
               <id>96da02ee1baef61e767742844207bec4</id>
               <title>Post title</title>
               <published>2014-01-01T00:00:00.000Z</published>
               <updated>2014-01-01T00:00:00.000Z</updated>
               <author>
                  <name>juliet@shakespeare.lit</name>
                  <jid xmlns="http://buddycloud.com/atom-elements-0">juliet@shakespeare.lit</jid>
               </author>
               <content type="text">O Romeo, Romeo! wherefore art thou Romeo?</content>
               <activity:verb>post</activity:verb>
               <activity:object>
                  <activity:object-type>post</activity:object-type>
               </activity:object>
               <thr:in-reply-to ref="1" />
               <activity:target>
                   <id>tag:channels.shakespeare.lit,/users/romeo@shakespeare.lit/posts,2</id>
               </activity:target>
            </entry>
         </item>
      </publish>
   </pubsub>
</iq>
```

== Rules ==

- Must be a reply, i.e. have valid `<in-reply-to/>`
- Post referenced must be in the same thread
- Target ID SHOULD be a global ID (local style accepted)
- Returned target ID MUST be a global ID