Correct information in samples

The CPU usage in ContainerStats is cumulative usage, not instantaneous usage. The makes the samples useless because randomly sampling cumulative CPU usage is not helpful for the user.

In this PR, I made the following changes:

- Add a new strcut called ContainerStatsSample, which is used to store a sample in which the CPU usage is instantaneous
- To generate a sample, we must have two ContainerStats object so that we could calculate the diff of cumulative CPU usage.
- Make the corresponding changes in container package.
- Unit tests.
Since its members are still public, users could access their members. However, ``percentile`` itself is private, so users cannot create an object of ``percentile``. In this case, to get percentiles of samples, the only way for users is to call ``FillPercentiles`` and users will not be able to change ``CpuUsagePercentiles`` in ``ContainerStatsSummary`` because they cannot create a ``percentile`` object.

Here is an example of iterating all members in ``CpuUsagePercentiles``:

```
        for _, p := range s.CpuUsagePercentiles {
                fmt.Printf("%v: %v\n", p.Percentage, p.Value)
        }
```