Add hearts model and associate libraries, add routes

Adds a Hearts model with a "heartable" polymorphic association.
Any model having "heartable" has to include a counter cache for their
and has to "has_many" hearts as "heartable".

There's both a database constraint and an AR validation for uniqueness
of user_tokens to heartables or users to heartables.
Users can now like a library

Now User.hearts will give you everything a user ever liked.
Anonymous Hearts can now also be created via a User token generated
from User-Agent and IP address.
add destroy method, allow anonymous create
style heart buttons using fontawesome
More generic HeartsControllers and Feature tests

The Heartscontroller can now be used with different
"parent" routes. There is feature tests that do not test the JS responses.