When collection is empty, treat it as page 0 not -1.

Also don't allow movement before first page and after last page.

Fixes #7
don't allow setting of 0 per page.
Add event that an item was added/removed from a different page.

Fixes #4
unit tests