Create TrimToTTL function

Comes with tests.

This unfixes bug fix 2) in 5d1c600279f6c9878aeb1194fc72088638a4362d
but it will be refixed again in a later patch.
Create TrimToSnapshotName function

Comes with tests
Create TrimToPrefix Function

Comes with tests.

Will be used by ValidSnapshotName in a later patch
Create ValidPrefix function

Comes with tests.

Will be used in ValidSnapshotName in a later commit.
Create TrimToFileSystem function

Will be used in a later commit.
Create ValidSnapshotName function

Comes with tests.
Create TrimToPool function

Comes with tests
Create ItRetvals test-spec
Use $RETVAL rather than printf

This allows us to avoid spawning subshells all over.

In my test-scenario, these are the following, real-world numbers:

Before the introduction of Trim* functions:
    average time = 1.05s
    subshells = ~600

Post Trim* functions pre-RETVAL:
    average time = 7.5s
    subshells = ~38,000

Post RETVAL:
    average time = 0.86s
    subshells = ~400
Make Trim* functions validate rather than guess
Use "local" for variables inside of functions
Merge branch 'trim_functions'