Add classDelegate, classDelegateFunctions, and delegateFunctions

I've been using these so I have more flexibility in slimming down my `Batman.Model`s. Now, you can do this: 

```coffee 
class MyApp extends Batman.App
  @on "run",  ->
     @set 'stateManager', MyApp.StateMananger.get('instance')

  @classDelegate 'currentState', to: 'stateManager'
  @classDelegateFunction 'startOver', to: 'stateManager'

class MyApp.StateManager extends Batman.Object
  @singleton('instance')
  @accessor 'currentState'
  constructor: ->
    super
    @set('currentState', 'initialized')

  startOver: -> 
    @set('currentState', 'started')
    Batman.redirect("/")

MyApp.run()
MyApp.get('currentState') # => "initialized"
MyApp.startOver()         # => takes you back to "/"
```

What do you think, @pushrax and @angelini ?