[MotionSpec] implementation for the #MotionMechanics library

This introduces an immutable [MotionSpec] and its related data types.

Background on design and motivation in go/motionvalue-design

Flag: NONE Initial commits for new library, currently unused.
Test: atest mechanics_tests
Bug: 379248269
Change-Id: I94251e1327720a9e99ba473ac95583bc37374847
8 files changed