Add support for FreeBSD 9.1 as well as 9.0.
FreeBSD update salt package -> sysutils/py-salt.

The salt package was renamed to the py- prefix to match other python
based ports. When built the name will be given a shortname of py27-salt,
in order to avoid Python versioning issues in the future we use the full
portname "sysutils/py-salt" which should always find the appropriate
version.
Add start daemons support for FreeBSD.
Protect from spamming /etc/rc.conf repeatedly.

The _post functions can be run multiple times. Make sure we don't write
the same string into /etc/rc.conf more than once.
Fix DISTRO_NAME_L for FreeBSD.

I've tested this with Ubuntu as well as FreeBSD and the [[:space:]]
method appears to work successfully across both OS's.
Allow PACKAGESITE to be overridden by env variable.

If the PACKAGESITE environment variable is not set then the normal
pkgbeta URL will be generated, if the variable is set then this will be
used in preference to the pkgbeta URL.
Use suggested form for DISTRO_NAME_L final sed.
Copy {master,minion}.sample files if enabled.
Make {master,minion}.sample config copying safer.

We make sure they exist first :)
Remove redundant $fname tests when copying configs.

Testing for the sample file existence will protect against the lack of a
syndic.sample file.
Remove duped lines now $fname checks are gone.
Store PACKAGESITE in BS_PACKAGESITE.

If the PACKAGESITE environment variable is set then we will use that
value, otherwise we calculate a sensible default and use that instead.
Add FreeBSD detection to bootstrap.ext.os_data
Add FreeBSD test_install cleanup rules.

To the `pkg autoremove` command will remove any packages from the system
which are not currently depended on by any other packages.
Add swig to list of test_install cleanup items.
Replaced `DISTRO_VERSION_NO_DOTS` string slice with `DISTRO_MAJOR_VERSION` variable. This should be more future proof.
Error out when we cannot add EPEL repository support.
Add @s0undt3ch provided fixes, many thanks.
Add name to header.
Added support for both major and minor version matching.

Added a bit more of complexity since we can now match functions by major version only, or major and minor version. This will improve arithmetic comparisons sometimes required when choosing which piece of code gets executed.