[package] Use target-specific variables to propagate filenames.

We now use target-specific variables to propagate the last built
package's filename to package.mk (whose responsibility it now is to
record such). Cleaned up a couple targets.
!WIP [makefiles] Include stage and package from common instead of master/rules.
!WIP [rules] Use __simplify instead of a manual simulacrum of it for objct tagging.
!WIP [package] Package versioning overhaul and custom package versions.

- Decouple package_version from control file parsing (kill most of its
  complexity without trashing the existing version number data.)
- Move build number bumping into an includable variable
  (THEOS_PACKAGE_INC_BUILD_NUMBER)
- Add support for a schema'd PACKAGE_VERSION variable so that the user
  may override version number generation.
- Offer an alternative to THEOS_PACKAGE_VERSION in the deprecation
  warning.
- Include the default version number format as
  _THEOS_PACKAGE_DEFAULT_VERSION_FORMAT.

TODO: $(BUILDNAME)
!WIP [rules] Rewrite the linking rules to use "stages", a complex system that allows link steps to be swapped out, reordered and removed without having to fix all their dependencies.
!VERIFY [nic] Refuse to make a project if we're root.