slicetype: pre-calculate cost estimates for B slices, simplify callback

rate control was always calling back for B slice estimates but since we were
only pre-calculating them if VBV was enabled we were forced to make the
estimates at that time (withing the context of the API thread).

With this patch, we estimate B costs unless CQP is in use, and this allows us
to simplify getEstimatedPictureCost()
Merge with stable
interlace: set sourceScanType to 0 to indicate interlaced video
Merge with stable
use fseekg() to skip frames for 64bit builds

This is orders of magnitude faster, at least on Windows, than repeated calls to
ignore(framesize)
cmake: add a clean-generated Makefile rule

'make clean-generated' will remove all the machine generated files in the build
folder so that they will be re-generated with more up-to-date version info the
next time you run 'make'

The "easy" workaround for this problem is to just nuke the build folder and
start a new one.
Merge with stable
rest: update introduction page, add more detail about software patents
cli: report input bit depth
y4m: support variable bit depth via CXXXpDD Y4MPEG header; ie: C420p10

ffmpeg's support for this is non-standard, so you must use -strict -1, aka:

ffmpeg -i vid.avi -pix_fmt yuv420p10le -strict -1 -f yuv4mpegpipe - | ./x265 - --y4m o.hevc

closes issue #53
ignore .DS_Store files (Mac pocket lint)
cmake: add CHECKED_BUILD option so we can add optional runtime checking
check: add checks for integer overflow in rdcost functions
log: add the RateFactor for each frame to the csv file when using --crf mode
slicetype: avoid redundant call. intraSatd costs are updated in frameEncoder already
ratecontrol: avoid clipping QP multiple times when VBV is not enabled.
ratecontrol: remove RateControl->qpNoVbv.

Less confusion, and we have whatever info we need in rce->qpNoVbv anyway
ratecontrol: remove repeat initialisations.
Merge with stable
log: remove hyphen from signhide, so it matches param name

This is just to avoid confusion