Will have a look @trustin please check the PR.
ResourceLeakDetector does not retain the initial record
### Expected behavior

The leak report printed by `ResourceLeakDetector` retains the stack trace of the moment the buffer was created.

### Actual behavior

The record with `Created at:` heading is not actually the creation record, e.g.

```
Created at:
    io.netty.buffer.AdvancedLeakAwareByteBuf.writeBytes(AdvancedLeakAwareByteBuf.java:616)
    ...
```

### Steps to reproduce

Not sure, but probably write an app that generates a lot of access records and leak?

### Minimal yet complete reproducer code (or URL to code)

Sorry, no.

### Netty version

4.1.22

### JVM version (e.g. `java -version`)

```
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
```

### OS version (e.g. `uname -a`)

```
Linux infinity 4.14.25-1-lts #1 SMP Fri Mar 9 22:02:42 CET 2018 x86_64 GNU/Linux
```
common/src/main/java/io/netty/util/ResourceLeakDetector.java
common/src/main/java/io/netty/util/ResourceLeakDetector.java
diff --git a/common/src/main/java/io/netty/util/ResourceLeakDetector.java b/common/src/main/java/io/netty/util/ResourceLeakDetector.java
index 3872c07d1cc..c29320adb7d 100644
--- a/common/src/main/java/io/netty/util/ResourceLeakDetector.java
+++ b/common/src/main/java/io/netty/util/ResourceLeakDetector.java
@@ -369,7 +369,8 @@ private static final class DefaultResourceLeak<T>
             // be collected via the WeakReference.
             trackedHash = System.identityHashCode(referent);
             allLeaks.put(this, LeakEntry.INSTANCE);
-            headUpdater.set(this, Record.BOTTOM);
+            // Create a new Record so we always have the creation stacktrace included.
+            headUpdater.set(this, new Record(Record.BOTTOM));
             this.allLeaks = allLeaks;
         }
 
