WIP: animate opening/closing folders with Velocity.js
WIP: animate opening/closing folders with Velocity.js
Animate closing sidebar folders with Velocity.js.
When opening a folder, automatically close any other open folder.
Removed outdated comment.
Removed unnecessary CSS class "closed-folder".
When setting the currently open folder, if the passed folder is already the one currently open one, no action is necessary.
When opening/closing entries, give priority to the animations before making any changes in the angularjs model layer.

The reason is that the animations are what the user is most aware of, and it makes sense priorizing them to achieve a better UX.
When opening a folder, the check to see if any action is necessary is based in comparing folder IDs, not folder objects.

The reason is that folders may be reloaded from the server (e.g. when a feed is moved to a new folder) which creates a new collection of folder objects in memory. In this circumstances we must compare IDs to see if two objects represent the same folder; comparing the objects themselves could give a false negative if one folder object was loaded on page load, and the other one was loaded from the server at a later time.
When a folder is marked as open in the angularjs model layer, it immediately has the "open-folder" CSS class.

This way folders inserted by angularjs are immediately displayed as open, if angularjs knows the folder is open.
Rotate folder arrows when opening/closing using Velocity.js instead of CSS transitions.
Remove unnecessary margin-top animation for folder arrows.

A 1-px animation was imperceptible.
Merge branch 'velocity-open-folder' of github.com:amatriain/feedbunch into velocity-open-folder

Conflicts:
	app/assets/javascripts/ng-services/ng-AnimationsSvc.js.coffee
	app/assets/javascripts/ng-services/ng-OpenFolderSvc.js.coffee
	app/assets/stylesheets/partials/_sidebar.scss
	app/views/read/sidebar/_sidebar_folder.html.erb
findSvc angularjs service now can search a folder in a list of folders, instead of searching in the list of folders stored in the root scope.

If no list is passed to the service, the default behavior is still to search in the root scope, so this shouldn't break anything.

This will enable us to search in the list of folders returned by the server. This will be necessary to change the behavior when loading feeds: instead of just replacing the list of folders in the root scope with the folders returned by the server (which will replace all folder objects with new ones), only new folders will be inserted in the scope (and folders in the scope not present in the list returned by the server will be removed). This way folders that have not changed will not have the object that represents them replaced by a new identical one.
When loading folders from the server, insert only new folders, and remove any folders not returned by the server.

The old behavior was simply to replace the full list of folders with the one returned by the server. This meant that even for folders that had not changed, the object representing them in the scope was replaced by a new one. This caused complications keeping track of which folder was open in the sidebar at a given time.

With the new behavior, folders that haven't changed will not change in the angularjs model layer. This makes more sense, even if the price to pay is a slightly more complicated logic.
Use CSS classes to make sure that newly added folders have a down-pointing arrow if they are marked as open.

This usually happens when a feed is moved to a new folder.
Remove outdated comment.
Feeds and folders entering and leaving the sidebar are no longer animated with ngAnimate and CSS transitions.
The animation when hiding/showing the sidebar in smartphones is performed with Velocity.js instead of CSS transitions.
Remove ngAnimate module from the app. It is no longer used.