raw2bmx: allow user choice for avid avci header inclusion

The same options, '--allow-no-avci-head' and '--force-no-avci-head',
were added to bmxtranswrap in c84da659
raw2bmx: cosmetics: indent after last commit
bmxtranswrap: simplify if/else logic around avci header setting
uri: allow runtime setting how uri are converted to/from filenames

This allows converting windows filenames on *nix and vice versa.
avid: add option to add a timecode track to the import source

An import source package is treated the same as a tape source package,
except an import source doesn't neccessarily have a timecode track.
apps/avid: add --import option and create only single import or tape package

An import source package is only created by explicitly providing
the filename or URI using the --import option.

An Avid clip may have a single import or tape source package

An absolute URL is filled in the network locator because Avid doesn't
accept relative URLs; the "Source File" bin property is only filled
when the URL is an absolute one.

Note that there are still a number of things missing to support
relinking based on import packages:
 - a timecode track is not created by default; this must change for
   sources that have a timecode track
 - the track ids of the import source package must match the track
   ids of the original (sourec?) package imported into Avid.
   Otherwise Avid will fail to find the track to relink with.
   Extracting this info from an input MXF file is possible. It is
   unclear what to do when the original is a quicktime file. Are the
   quicktime track numbers used or does Avid create its own set?
add feature and issue todo lists
add missing unistd.h include for getcwd function call
fix strict-aliasing rules warning
add missing virtual destructors (-Wdelete-non-virtual-dtor)
avid: initialise member variable, fixes seg fault
h264dump: add byte to NAL to workaround missing stop bit

Add a byte to the NAL unit bytes as a workaround for the missing
sequence parameter set stop bit in Avid Transfer Manager AVCI
files. The last couple of properties in the SPS are zero and the
last byte is wrongly assumed to be padding because of the missing
stop bit. This results in not be enough bits being available and
parsing fails
h264dump: remove typo ')' from warning message
h264dump: rename num_bytes_in_nal_unit and change to function local variable

Name changed to num_nal_unit_parse_bytes and changed from a context
to a function variable because the Avid workaround means it no longer
equals the bytestream encapsulated NAL unit size.
replace (v)snprintf with bmx_(v)snprintf

MS Visual C++ _(v)snprintf implementation differs from the POSIX
definition. The return value is different and a NULL terminator
is not written when the number of chars required >= size parameter.

The bmx_(v)snprintf implementation guarantees that the output
string is NULL terminated if string != NULL and size > 0. It
returns void.
movdump: replicate bmx_vsnprintf in exception class
issue list: add an as02 and a build issue
move check_is_dir() into Utils
as02: check for win32 abs bundle directory name

Check for an win32 absolute directory name to fix missing check
resulting in the current wirking directory always been prepended
to the directory name on windows.

Also check for both possible file separators on windows.
as02: don't append dir separator before mkdir

Windows _mkdir doesn't accept the name to have a directory
separator at the end. The directory separator is therefore
appended after _mkdir/mkdir is called