Preliminary support for supplying additional arguments to algorithms

Allow users to supply additional arguments to abbreviations or pre-trained
algorithms (e.g. FaceRecogntion(a=b) is now possible).
Arguments supplied must be key/value pairs, not positional. Any listed
additional properties will be assigned to the first matching transform
using a pre-order traversal of the algorithm tree.
Refactor conditionals in AlgorithmCore::init

This saves upwards of 3 lines of code!
Remove a space.
Remove another space.
Merge pull request #215 from biometrics/additional_arguments

Preliminary support for supplying additional arguments to algorithms
made br_iterate_utemplates_file more robust
refactored br_iterate_utemplates_file
introduced br_log
tweaked read_buffer error messages
Better support for serializing algorithms in memory

Expand on Object::description to get a workable string that reflects the
current state of the properties of Objects in memory.

With this, we can conceive of serializing Transforms/Distances without
having prior knowledge of the string used to construct them, and also to
serialize them in cases where alterations have been made to their state
in memory.

Also introduce an option to force complete serialization of a transform
tree (i.e. bypass LoadStore blocks), this allows us to do things like
serialize an algorithm in memory, and transmit it to another process
without requiring that the other process read part of the algorithm from
disk.

Refactor ProcessWrapper to directly transmit its current Transform to
child processes, rather than requiring the child processes to read its
state from disk. This allows for far more uniform treatment of
multiProcess and non-multiProcess jobs in AlgorithmCore, leading to
substantial simplification of AlgorithmCore::compare.
Updated gui error message to current flag
Changed video descriptor algorithm names
Added the DenseHOG abbreviation
Reverting mistake in old commit
Some formatting updates
In LoadStore, save the results of description() rather than a static transform string

This gives us robustness to one type of model file compatibility break, if
e.g. the FaceRecognitionRegistration abbreviation is changed, any results
of <FaceRecognitionRegistration> that were previously saved to disk are
not invalidated (although any changes to FaceRecognitionRegistration will
not be reflected until the model is re-trained).
Additional comments about added parameters/methods.
Update algorithm serialization

Rather than saving the Transform and distance strings of an algorithm
together, in stored files, save the transform and distance descriptions
separately. Also introduce an enum allowing for the serialization of
algorithms which use gallery comparison transforms, rather than distances
as their comparison function.

Update pre-trained algorithms, this only requires updating the algorithm
files themselves, transforms saved via LoadStore are unaffected.
Enable vs warning for unused parameters at w3

For consistency with other supported compilers, enable a warning about
unused parameters at warning level 3 in visual studio.

By default this warning is at level 4, but using level 4 isn't really
feasible since a ton of warnings are generated for Qt header files.
fixed msvc warning