Add function to get the pin medium

The pin medium is a value that is used to associate input/output pins of
related filters to each other.  Using the pin medium, it is then
possible to search for the related encoders, crossbars, and other such
types of filters that are a part of the device.
Add functions to find pins/filters by medium

The GetPinByMedium function searches a filter for pin that has the
specified medium.

The GetFilterByMedium searches system filters of a specific category for
a filter that has the matching medium on an input or output pin.
Add MapPinToPacketID function

This is a function that maps a created demuxer pin to a specific packet
ID within the stream.  Should only be called after the
device/encoder/etc filters have all been connected to the demuxer filer.
Add MediaType::AllocFormat function

This safely allocates data and fills out the pbFormat and cbFormat
member varaibles of the structure.
Remove VideoFormat::MPEG2

This format isn't used and is unlikely to ever be used
Add AudioFormat::AC3

It turns out the HD-PVR1 uses AC3 for its audio, so add it to the audio
formats enum.
Add MEDIASUBTYPE_DVM GUID definition

We're just going to use DVM to identify the AC3 format on the pin.
Add demuxer helper functions

These functions are used to create audio/video pins on demuxers.  Also
specifies the names of the demuxer pins.
Add DirectConnectFilters helper function

This function attempts to directly connect the output pins of an output
filter to the input pins of an input filter automatically.  If any pins
were connected by the function, it returns true, otherwise false.

Does not use smart connect -- this function is meant to be used to
connect a crossbar filter to the main device filter.
Add MPEG-1 audio support

Apparently the HD-PVR Rocket uses MPEG-1 audio.
Remove 'trying pins' message

It's a bit redundant to have this message.  It happens for specific
devices regardless, so there's no real need to warn about it.
Set MediaTypePtr pointer value to null on clear

This prevents any potential of the pointer value being leaked if the
pointer value fails to be set
Fix HDevice::ConnectPins

The call to GetFilterPin has two things wrong with it:

First, it had the parameters in the wrong order.

Second, the if expression failed on success rather than on actual
failure from it.
Only add audio filter on graph if custom audio

The audio device filter is the same as the video device filter if it's
the video device's built-in audio.  Adding it twice to the graph is sort
of pointless and potentially problematic for all I know.
Add elgato support
Add Hauppauge HD-PVR 2 support
Add Roxio Game Capture HD support
Add Hauppauge HD-PVR Rocket support