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
Can you give me a resource to look at in order to get this correct? I'm happy to do the work, and I think it's an important issue to fix.