Prepare ForkService to support forking projects to given namespaces

Remove overload of BaseService.initialize, so initialize gains params,
which is used to pass the namespace (like e.g. in TransferService).

The namespace is checked for permission to create projects in it.
Merge branch 'prepare-fork-to-given-namespace' of https://gitlab.com/bkaindl/gitlab-ce into bkaindl/gitlab-ce-prepare-fork-to-given-namespace
Refactor project fork service

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Select namespace where to fork project

Now you can fork project into group or personal namespace.
Also I moved fork logic from ProjectsController to own fork resource

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Routing specs for fork projects

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Improve fork to namespaces feature

* Show namespace thumbnail differently if project was already forked
* Show loading spinner when click on fork
* Fork link navigates to personal namespace only if no manageable groups exists

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Merge branch 'fork-to-group' into 'master'

Fork to group

Fixes #1592

* project can be forked into group
* fork link always lead to fork page where you select namespace where to fork

See merge request !1253