Add date range UI component.

Added a DateRange JS class that contains the logic for moving between
months. Will improve this to include non-month-sized ranges as I
iterate.

: #ui #feature #test
Move habits angular files into engine folder.

Moved habit resource into its own file. Moved it and the controller
under the engines folder.

: #ui #angular
Parameterize ranges for habit listing.

: #refactor
Remove no longer called JS method.

: #refactor
Allow habits to be tracked in other months.

: #bug
Filter out inactive (ended or not in range) habits.

Added a method to Habit to retreive the active habits, given the end
date of the range. Also made it possible to 'end' a habit, causing it
to disappear from the view. The app now supports pulling date ranges
so we can scroll through old months now. Had to add timestamps to the
habit to make this all work, so changed the original migration that
created the table.

The refactor tag here is because I moved a step from user_steps to
habit_steps.

: #ui #feature #refactor #test
Fix CSS bug with nav.

: #ui #bug
Fix one bug with adding a new habit where a JS error would happen.

Unfortunately, adding a habit always adds it as of 'today', when it
should add it as of the first day in the visible range.

: #ui #bug
Hide forward arrow when at end of date range.

: #ui #feature #test
Habits can be created in previous months.

: #feature #ui #test