Made changes to the test program before adding movie/track duration extraction logic

Removed the implicit "file_container_box.load_children (0)" from the test
 program. We want to be able to test code that doesn't have this precondition.
 Instead added it to test code blocks that need it.

The -dump option is now -print.

Added "movie-duration" and "track-durations" as -print options.

Added an optional level argument for -print infile.
Added TrackHeaderBox duration get/set logic and disambiguated track movie/media timescale

Found an issue with the separation of "track duration" and "media duration"
 concepts while implementing low-overhead duration calculation logic.

 TrackHeaderBox now has set_duration() and get_duration_seconds() methods
 which utilize the movie timescale. And TrackBox now has get_movie_timescale()
 and get_media_timescale() (formerly get_timescale(), which was ambiguous).

Also added some "this.loaded" checks to various get_duration() calls after
 catching some (silent) unloaded box errors during test. There's now a
 IsoBoxError.NOT_LOADED error that methods can throw when dependent fields/
 children aren't loaded. (checks are needed in more places though)

Implemented the test program's -print movie-duration|track-duration options.