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
add signup and login info on the forms
cleanup homepage buttons some

let's devide the partials rather than having super specific parameters (on_user_page)
cert_path now is api_cert_path
return nil as auto_ticket_path for invalid tickets

The auto_ticket_path is referenced from the tickets_controller like this:
     respond_with(@ticket, :location => auto_ticket_path(@ticket))
While this only uses the location parameter when the ticket is valid it will still attampt to calculate it if not. During the create action this will lead to crashes because the ticket_path can not be calculated for a ticket without an id.

This led to https://leap.se/code/issues/5552 and probably
https://leap.se/code/issues/5545.
let's only add the flash notice if the ticket has been created
check user_id param for present? instead of !nil?

when rendered from teh create action due to an error user_id param will
sometimes be an empty string. We should still avoid rendering the
navigation because the path's can not be resolved without a user_id.
add tests for invalid ticket creation
remove cert link - has no purpose anymore
Merge pull request #152 from azul/bugfix/5552-recover-from-invalid-tickets

Bugfix/5552 recover from invalid tickets
Merge pull request #151 from azul/bugfix/5549-prefer-client-signup

Bugfix/5549 prefer client signup
Merge pull request #148 from azul/feature/api-quota-support

Feature/api quota support + current_user null pattern
simple form: add wrapped and loading... buttons #5542

the loading... text on the buttons was not capitalized before.

So in order to change this in a (more or less) single place i added
new button types to simple_form:

button :wrapped - normal button, with loading and an optional cancel button wrapped in the classical bootstrap action div.
    cancel option contains the url to go to when canceling.

button :loading - simple button with loading text capitalized by using i18n (simple_form.buttons.loading)

Conflicts:
	engines/support/app/views/tickets/new.html.haml