Change SiteTreeHints to check for canEdit

Allowing ability to have
public function canCreate($member = null) {
    return MyPage::get()->count() < 1;
}
and still be able to re-order this page in the sitetree.

I have tested moving pages in site tree, with and without the canCreate and canEdit rules, can_be_root and allowed_children statics.

This Fixes #657
Hm, I see the fix you've added, but I'm not sure that using the permissions of the `->first` matching instance is a good idea. Pages can have permissions applied to them on a one by one basis. E.g. if you restrict editing to the home page to certain users (type = 'ContentPage') then all other ContentPage types in your tree are unsortable.