Fix webserver memory leak

If the webserver is passed an If-Modified-Since value, which indicates
the
client has the current file, there is nothing to send, the code leaked a
context object.

To fix this I've converted a couple of items to smart ptrs.

The context is now an auto_ptr, and if it's used with the mhd callback
we can pass ownership by using release, otherwise it'll get destroyed on
exit of the function.

Also in the context, the CFile object is now a shared_ptr<CFile>, note
that the Close call is carried out in the CFile destructor.

This should make sure that appropriate cleanup occurs as things go out
of scope, without needing to have all the right deletes in the right
places.

In the free callback move the delete before the trace line, so that we
can be sure everything has been closed and freed when that trace line
occurs.
Merge pull request #4735 from cg110/fix_web_server_mem_leak

Fix webserver memory leak
videoplayer: adapt lateness detection and dropping to buffering
video player: present correct pts to user for a/v sync (after buffering in renderer)
videoplayer: some rework and documentation
renderer: bump buffers to 5
videoplayer: update frametime, it might change due to fps detection
videoplayer: give streams with invalid fps a chance for fps detection
dvdplayer: allow rewinding at end of stream, do a seek after rewind
dvdplayer: observe pts counter overflow
dvdplayer: avoid short screen flicker caused by unnecessary reconfigure of renderer
vdpau: advanced settings for auto deinterlacing
player: fix rewind
OMXPlayer: some caching fixes for pvr
fix incorrect display of fps when dr kicks in
renderer: allow some lateness within vblank interval
ActiveAE: slightly reduce buffer size
Revert "vdpau: comment some features that will be added later"

This reverts commit e00b4f65864d623ab4d2e9e5c06db138e661f1cf.
ffmpeg demuxer: faster channel change for PVR addons without internal demuxing
(such as MediaPortal, ArgusTV, MythTV, NextPVR)
Credits: FernetMenta, Davilla, Popcornmix, Whaupt
ffmpeg demuxer: make sure we start mpegts video with an i-frame