User pages are public

Fixes http://feedback.gitlab.com/forums/176466-general/suggestions/5374154-create-a-public-index-of-users-and-let-users-be-pu which is ACCEPTING MERGE/PULL REQUESTS.

**Behaviour Changes**

- current user profile pages at `u/:username` can be visited seen by any user without login.
- only projects and project events that the logged in user can see are listed.

The content of the page is otherwise unchanged, except of course the public header in case the user is not logged in.

**Screenshots**

- `u/:username` while signed out:

![screenshot from 2014-01-27 18 21 45 signed out](https://f.cloud.github.com/assets/1429315/2013296/7f362638-8793-11e3-9a3b-b2f8772e001c.png)

- `u/:username` while signed in as someone else:

![screenshot from 2014-01-27 18 26 15 signed in as someone else](https://f.cloud.github.com/assets/1429315/2013299/88a804a2-8793-11e3-9d95-3ff86c5e1d43.png)

- `u/:username` while signed as the user himself:

![screenshot from 2014-01-27 18 26 54 signed in as the user](https://f.cloud.github.com/assets/1429315/2013302/8f1c2836-8793-11e3-8acd-e7fe724aa183.png)

**Implementation notes**

Factored out test User creation under `group` and `admin/group` into `shared/user`.
Used name `"John Doe"` everywhere instead of just `"John"` to keep uniformity with projects.

Part of `features/steps/public/projects_feature.rb` spilled out to `shared/project.rb` since it
is now used in both Public projects and User tests.

CSS class `header.project_name` renamed to `.title` since it can now contain both project names and user names.

Please consider merging [this other MR](https://github.com/gitlabhq/gitlabhq/pull/5896) as it would make it much easier to do interactive tests and screenshots that depend on having multiple project visibility levels.