Added business_day() functionality (see issue #21)

This will allow expansion / contraction for weekends and performing Period
operations on a business day basis. At the moment, a business day is one that
does not fall on the weekend.

However, in the future it will be possible to define a business day more
generally (e.g. those not falling on weekends or on a public holiday). This
could be done by writing new "bad day checkers" (e.g. `is_weekend()`) for a
given `locale`  and then updating `map_locale()` to allow for those locales.

Technical changes:

- `Period` class has a new slot `bday` that records business days
- `bday` is a way point and is converted to an equivalent number of
calendar days using `bday_to_cday()`. This means many downstream functions
require only minimal changes.

Other changes:

- Updated some bits of documentation
- Updated some pre-existing tests to reflect new `Period` class representation

To dos:

- Create test cases for `business_day()`
- Update documentation more completely