add random tests for _add_time when using months and years
add whitespace
Merge branch 'master' of git://github.com/dirn/When.py
Create development branch
Begin work on version 0.3.0
Add format() method

The `format()` method provides a wrapper for the `strftime()` method associated with `date`, `datetime`, and `time` objects. At this point there is no special behavior added, this method simply serves as an alternate way to get a formatted string. The main purpose for its addition is to allow for alternate behavior in the future (e.g., raising an exception when passing in a date-related directive when formatting a time).
Update version number in Sphinx docs
Change Travis CI back to master

master is the branch that people will use when installing from PyPI, therefore this branch should always pass its tests. That is why this is the branch that people should see the information for, not develop.
Add assertions for datetime objects

The `_add_time()`, `format()`, and `shift()` methods all required that the `value` argument contain a valid datetime object. They all now include `assert` statements to make sure this is the case.

In each instance, `assert` is provided with the result from the `_is_date_type()` method. This method checks that `value` is either a `datetime.datetime`, `datetime.date`, or `datetime.time`.
Add sphinxy docstrings
Add more sphinxy docstrings

Some functions didn't have much of a docstring. I omitted them the first time through.
Switch AssertionError tests

It looks like the context manager version of `assertRaises()` wasn't part of Python 2.6. In order to maintain support for 2.6, I'm changing the tests to use the older version of the test method.
Add tox.ini for tox (http://tox.testrun.org/)
Merge pull request #3 from msabramo/tox

Add tox.ini for tox (http://tox.testrun.org/)
Add ever() method

The `ever()` method can be used to generate a random datetime object. This is useful for conducting tests that need a datetime, but don't require it to be anything specific.

Instead of using `datetime.MINYEAR` and `datetime.MAXYEAR` as the bounds, the current year +/- 100 are used. This is because if the date is too extreme (e.g., year 1), it will probably be less meaningful for tests.
Remove unused print statement

The `print` statement had originally been added for quick debugging during the initial writing of `ever()`. Because it occurred after the `return`, I forgot about it.

While this is a case of no harm, no foul, it prevented the Python 3.x tests from passing since `print` is a function in Python 3, not a statement.
Change xrange to range

Python 3 replaced `xrange()` with `range()`, dropping the previous version of `range()`. Because it is only be used for testing and the number of items included in the range is limited (50), there is no harm in using `range()` for Python 2.x.
Change check for datetime objects

`datetime.datetime` extends `datetime.date`. Therefore anything that passes `isinstance(object, datetime.date)` will also pass `isinstance(object, datetime.datetime)`.
Change type assertion in shift()

The `shift()` method requires its `value` parameter have a `tzinfo` attribute. `datetime.date` objects do not have one and as such are not acceptable values. Rather than checking the instance type of the parameter, it's better to check for the existence of the `tzinfo` attribute.
Add methods to test for time zone aware/naive datetimes

When the `shift()` method was first given the ability to work with time zone aware datatimes, I made the assumption that checking `value.tzinfo is not None` was sufficient. After reading through the `datetime` documentation, I learned this wasn't the case. There is a second check that is required:

    A `datetime` object `d` is aware if `d.tzinfo` is not `None` and `d.tzinfo.utcoffset(d)` does not return `None`.

These new methods encapsulate these two checks.