initial commit for the service level api

:api/service will return a hash of the current users service level

This is failiing if the user is not logged in. Instead it should return the service description for an anonymous user.
UnauthenticatedUser as current_user

this still allows us to do current_user.service_level.

Have not gone through the rest of the code yet.
Only made sure logged_in? now tests for is_a? User instead of !!current_user
make use of the UnauthorizedUser

Null Pattern for current_user - use it to get rid of some conditionals
adjust test to service list in config
minor fix: User#email_address not User#email
change service level configuration strategy

The changes to the configuration required some non minor changes to the platform and also added some flexibility we don't require yet - and thus some new possibilities for errors.

So instead we still use the allow_..._certs and ..._cert_prefix options.
They basically provide the framework in which service levels can operate.

The service level configuration will not include the cert prefix anymore.
It only states if the service level is rate limited or not.
This avoids conflicts between the two configuration options.

I also removed the anonymous service level entirely.
It was also turning a boolean decision (do we provide anonymous eip or not) into something way more complex. Instead I added the AnonymousServiceLevel class to handle the corner cases for people who are not logged in.

Furthermore i renamed the UnauthenticatedUser to AnonymousUser so it matches the Anonymous Service Level nicely. It's also shorter and more intuitive.
bringing back empty cert prefixes

if neither limited nor unlimited certs are allowed there will be no prefix. Not sure if this is desired - but it's the way things used to be before the refactoring
adopt service_level config to platform settings

cost  -> rate
quota -> storage
Merge pull request #148 from azul/feature/api-quota-support

Feature/api quota support + current_user null pattern