Garden Management Take 2

It's the same as the previous PR only now with working tests, and more finished functionality.

# What's New
* started adding a user's garden page
![screenshot 2014-11-06 14 25 36](https://cloud.githubusercontent.com/assets/485583/4932212/48b4fb94-6586-11e4-8804-9bb06637244c.png)
* this goes alongside all the relevant angular services, garden controllers, garden crop controllers, and gardencrop mutations.
* guides can be added to gardens:
![screenshot 2014-11-06 14 26 12](https://cloud.githubusercontent.com/assets/485583/4932213/48bfa5f8-6586-11e4-8f45-684a81940e58.png)

# What's missing:
* Adding new gardens!
* Dynamic handling of the garden options. @channel have thoughts on this (will that work?)
* I'm probably missing some things.
* Garden images

# What's next
* Plan an OpenFarm meeting to define an openfarm roadmap.
You technically don't need that last line to memoize in ruby:

```
2.1.3 :001 > @hi ||= User.new
 => #<User _id: 545cb742736d61c3f5000000, email: "", encrypted_password: "", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, display_name: nil, location: nil, years_experience: nil, units: nil, mailing_list: false, admin: false, is_private: false> 
2.1.3 :002 > @hi ||= User.new
 => #<User _id: 545cb742736d61c3f5000000, email: "", encrypted_password: "", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, display_name: nil, location: nil, years_experience: nil, units: nil, mailing_list: false, admin: false, is_private: false> 
```