Adds public boolean value to Item model

Public replaces the "shared with user_id -1" as a means for making an
item globally visible.

Also allows non-owner to favorite and unfavorite item.
Filters favorite visibility on item's visibility

If an item is favorited by a user, but is then no longer visible to the
user (made private, or unshared), the favorite will not be visible any
more. This won't destroy the favorite, and it will reappear if the item
is shared or made public again.

Also fixes some exceptions thrown if a user tries to view someone else's
project.
Re-adds visible reminders for non-owners
Restyles item#new form
Styles new item form again
Adds 'public' checkbox to new item form
(Re-re-re)styles item#new form
Uses accepts_nested_attributes_for item.reminders

New and Edit forms changed appropriately. Also they use the
same partial for the sidebar.
Adjusts item/search form layouts
Fixes incorrect join type for search
Cleaned up the (still bad) search method
Adds User. avatar, real name rows to db
Updates new user form, adds edit user form.

The edit user form allows the upload of an avatar image.
Also when changing a user's password or email, the current password
is require. And when changing a password, there is another password
confirmation.
Adds rudimentary user#show page
Doesn't use aws for development