Implemented output enhancements to Ape.log()

Added the ability to `Ape.log()` to output the actual structure of a complex object to the console. Assuming `data` is a complex object the current output would be:

```
[object Object]
```

with these update it would be something like:

```
({
  0: #1={
    pipe: {},
    channels: {
      music: {
        pipe: {},
        users: {
          '09596760c3bd9ec6ff804f24812546eb': #1#
        }
      }
    },
    text: "helloworld",
    chans: [
      {
        pipe: {},
        userslist: {}
      },{
        pipe: {},
        userslist: {}
      }
    ]
  }
})
```

The `#1=` refers to a reference definition, while `#1#` references the same object define by `#1=`