Adds Link Time Optimization cmake option.

Adds a LTO option that isn't enabled by default.
Allows building release binaries with link time optimizations without generating a -dirty build.
Not enabled by default due to concerns of memory usage and increased build time.