Non-multiple of 16 width/height support for enc testapp

Also included test sequence.
../h264enc welsenc_arbitrary_res.cfg
Linux shell scripts refactored
Safe parsing of command line parameters in enc console app
Use MSVC inline assembly only on (32-bit) X86

Currently this used the _MSC_VER && !WIN64 to enable the inline
assembly, which still tried to use this code on windows on arm.
Using _MSC_VER && _M_IX86 is enough since _M_IX86 is defined only
when targeting 32 bit x86, not for x64.
interface clean and inside modification

clean and comment some API.
move the SKIP mv pred location
remove the unused buffer in intra construction.
Merge pull request #110 from huili2/master

interface clean and inside modification
Merge pull request #85 from varunbpatil/safe_param_parse

Safe parsing of command line parameters in enc console app
ReviewBoard .rc file for rbt.
Merge pull request #105 from mstorsjo/msvc-disable-inline-asm-on-arm

Use MSVC inline assembly only on (32-bit) X86
Merge pull request #77 from varunbpatil/enc_testapp_arbitrary_res

Non-multiple of 16 width/height support for enc testapp
Merge pull request #83 from varunbpatil/autobuildlinux_cleanup

Linux shell scripts refactored
Use InitializeCriticalSectionEx for Windows Store or Windows Phone apps

The old InitializeCriticalSection function isn't available in
these API partitions, and the new InitializeCriticalSectionEx
function is only available since Vista, so we want to keep using
the old function for normal desktop code.
Enable use of D3D9 only when targeting desktop apps

Don't try to build this when building for phone/windows store (aka
metro/winrt) apps - this API isn't available there.
Use the right data type for process affinity mask

This allows using the same code on 64 bit windows as well.

Tested on MSVC 2008-2013.
Don't call process affinity functions in windows store or windows phone apps

These functions are only available in the desktop api subset.
Remove VC6 project files

These files are unmaintained and outdated, not even functional
in the initial commit of the project. Additionally, no similar
files are present for the decoder.
Use make patterns to avoid needing autogenerated rules for each source file
Add proper dependencies for the command line binaries

This makes sure that all the dependency libs are built before trying
to link them together, fixing parallel make (which occasionally
failed due to trying to link the encoder or decoder command line
binaries before the libs had been built) and also fixes building an
individual component by e.g. "make h264enc".
Merge pull request #106 from mstorsjo/windows-api-subset

Allow building for the WinRT/Windows Phone API subsets
Merge pull request #115 from mstorsjo/remove-vc6-project-files

Remove VC6 project files