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
I think this behaviour is incorrect. canEdit() I assume requires a record rather than being intialized as a singleton (i.e since canEdit would normally check the page access rights). canCreate doesn't normally rely on instance state.