Add support for server rendered SPA!
**Is your feature request related to a problem? Please describe.** 🤔
Not exactly a problem, but if the SPA website needs to be accessed in a browser that Javascript is disabled, like Tor Browser, we need to maintain 2 routes that draws same HTML (with different data getting methods)

**Describe the solution you'd like** 💡
Allow to build the same code for both frontend and backend, like [Nullstack](https://github.com/nullstack/nullstack)

**Describe alternatives you've considered** 💁‍♀️
Can be implemented an pragma like `{.backend.}` and if the proc uses some backend specific feature. In backend the proc will be used like a proc, but also, an auto API route will be generated and frontend will fetch to this endpoint automatically (like in Nullstack) 

Example:
```nim
import happyx
# [...]
proc getUser(username: string): User {.backend.} =
  result = newUser()
  dbConn.select(result, "User.username = ?", username)

serveSPA("127.0.0.1", 5000):
  "/user/{username:string}":
    let user = getUser username
    result = "..." # draw user page here
```

Can be translated like that:
```nim
import happyx
# [...]
proc getUser(username: string): User =
  when defined js:
    result = fetch("/internalapi/getUser", $ %*{"username": username}).parseJson.to User
  else:
    result = dbConn.select(result, "User.username = ?", username)
when not defined js:
  internalApiRoutes.add("/getUser/{username:string}") do:
    result = $ %*getUser username

serveSPA("127.0.0.1", 5000):
  "/user/{username:string}":
    let user = getUser username
    result = "..." # draw user page here
  when not defined js:
    mount "/internalapi" -> InternalApi
```

**Additional context** ✌
Also, the base path `/internalapi` could be changed at compile time, like: `-d:happyXInternalApiBasename=internapi`

Also, awesome library, I loved!