Fixed error when collecting parent hooks

Child controller inherits prototype's methods from the parent controller prototype.

So, if we have `Parent` controller

```js
Parent.prototype.before = function () {
  console.log('parent.before');
};
```

and we create `Child` class inheriting from the `Parent` we will have prototype as follows:

```js
Child.prototype.before = function () {
  console.log('parent.before');
};
```

Now when collecting hooks, the result hooks array will contain both functions instead one and it will cause double hook execution.

The problem is this line: https://github.com/EventedMind/iron-router/blob/dev/lib/route_controller.js#L45

```js
return ctor.prototype[hookName] ? hooks.concat(ctor.prototype[hookName]) : hooks;
```

What it does is checking if given hook is in the given prototype but it will be true even if the hook is not in the prototype. It's because it will look in the prototype of the parent class and so on. So, if we have three classes inheriting from each other:

`C` <- `B` <- `A` <- `RouteController`

and only `A` class will have `after` or `before` hook, it will still think that each one has given hook.

To deal with that, we have to explicitly check if a given prototype has a hook by using `Utils.hasOwnProperty` function.

```js
return Utils.hasOwnProperty(ctor.prototype, hookName) ? hooks.concat(ctor.prototype[hookName]) : hooks;
```
Added failing test for #276
Fixed #276
Fixed problem where the initial hash was stripped.

For #254.
Added test for collected hooks count

We have to test not only hooks order but also hooks count to make sure that collecting hooks works properly.
Merge branch 'pr/284' into dev
readme update related to issue #259
Merge pull request #290 from marturion/patch-1

readme update related to issue #259
Clarify placement of 'where'

For server routes, see issue #88.
Update README.md
Update README.md

Fix typo
Merge pull request #326 from thebrettd/master

Update README.md
Merge pull request #301 from ariemer/patch-1

Clarify placement of 'where'
Added failing test case for simple optional paths.
Fixed #328
Basic test for integer params. For #330
Create CONTRIBUTING.md
Remove references to non-reactive routes.
Whoops
Added option to customise the IronRouter/IronLocation anchor/link selector IronRouter.configure({"linkSelector":"a[href][data-custom='true']"