Better nickname generation

The nicknames for methods are often used by client library generators to name the methods in generated classes (e.g. the [Swagger Codegen][]). Currently Restler generates nicknames which contain characters which are not legal as identifiers in most languages, like `-`.

With this patch Restler now generates more natural nicknames for the Swagger manifest.

For example, with this API method:

```php
<?php

namespace Service;

class User
{
  /**
   * @url GET /
   * @return List[\ValueObject\User]
   */
  function index()
  {
  }

  function get($id)
  {}
}
```

The generated nickname for `index` would be `getUserList`. For `get` it would be `getUserById`.

The Scheme is as follows:

1. The HTTP method lowercased
2. All route parts which are not variables
3. "By" followed by the names of all variables.
4. optional collection type, when the method indicates that it returns with "List", "Array" or "Set"

[Swagger Codegen]: http://github.com/wordnik/swagger-codegen