Get rid of magic numbers, update copy constructors.

- font
  o Body of FONT_load() function changed to pass a bool value to mopen()
  o This necessitated a change to the type of the FONT_load() parameter
    relative_path to "const bool"
  o Change all places FONT_load() called to pass "bool" argument for
    relative_path
- md5
  o Body of MD5_load_mesh() function changed to pass a bool value to
    mopen()
  o This necessitated a change to the type of the MD5_load_mesh()
    parameter relative_path to "const bool".
  o Change all places MD5_load_mesh() called to pass "bool" argument
    for relative_path
  o Body of MD5_load_action() function changed to pass a bool value to
    mopen()
  o This necessitated a change to the type of the MD5_load_action()
    parameter relative_path to "const bool"
  o Change all places MD5_load_action() called to pass "bool" argument
    for relative_path
- memory
  o Change relative_path argument for mopen() to type "const bool"
- obj
  o Change relative_path argument for OBJ default constructor to type
    "const bool"
  o Change OBJMESH copy constructor to use an initializer list
  o Change OBJTRIANGLELIST copy constructor to use an initializer list
  o Change OBJMATERIAL copy constructor to use an initializer list
  o Change calls to get_file_extension() to use a "bool" as the third
    argument
- program
  o Change relative_path, and debug_shader arguments for the PROGRAM
    constructor created from the old PROGRAM_create() function to type
    "const bool"
  o Change relative_path, and debug_shader arguments for
    PROGRAM::load_gfx() to type "const bool"
  o Change debug_shader argument for PROGRAM::build() to type "const bool"
  o Fix PROGRAM::init() to test if the name parameter is NULL, and, if
    so, clear the name field in the PROGRAM object.
- sound
  o Change calls to get_file_extension() to use a "bool" as the third
    argument
- texture
  o Change calls to get_file_extension() to use a "bool" as the third
    argument
  o Change calls to mopen() to use a "bool" as the second argument
- utils
  o Change calls to get_file_extension() to use a "bool" as the third
    argument
  o Change return type of point_in_frustum(), and box_in_frustum() to
    "bool"
  o Add InFrustum enumerated type to help eliminate another set of
    "magic numbers"
  o Change return type of sphere_intersect_frustum(), and
    box_intersect_frustum() to InFrustum
  o Replace various while loops with for loops
  o Add comments about various portions of the code which are not well
    documented so they can be studied later
  o Add a comment to point out future strategy of using the vec4 dot
    product computation to make the code more readable
- Change sample program code to reflect the various changes to the
  signatures of the class methods, and utility functions