fix(scrollView): if bouncing past boundaries, do not stick.

Closes #482

Zynga Scroller slowly lowers the acceleration of scroll as soon as you pass the
boundaries. Once the acceleration reaches zero, zynga will 'flip' the
acceleration in the other direction and scroll back to within the
boundaries (bounce effect).

The problem is, sometimes as it slowly lowers the
acceleration it will get *near zero*, but not reach zero.  When
acceleration gets close enough to zero, zynga stops the scrolling
because it deems it 'too slow'.

Now, the scrolling acceleration will 'flip' and go back towards being
in boundaries (bounce) when the scrolling is below a certain minimum,
not just when it is below zero.
chore(bower): include only ionic files, add dependencies

Closes #507
refactor(view): use nextUid from angular to generate unique ids

Math.random() is unreliable, produces duplicates, and numbers can
overflow if you use them for long enough.
feat(content): remember scroll of previous page

`content` directive stores scroll in view page history.

The history is passed down through $viewContentLoaded event, which is
broadcasted by navView directive when it loads a page.
chore(build): automate release process
chore(build): more ci server automation